110,534
社区成员
发帖
与我相关
我的任务
分享
public void Send(byte[] buffer)
{
if (buffer == null || buffer.Length == 0)
return;
_unlockedSendQueueAEVT.WaitOne();
_sendQueue.Enqueue(buffer);
_unlockedSendQueueAEVT.Set();
_moreDataToSendMEVT.Set();
}
System.Threading.WaitHandle[] wait_handles = new System.Threading.WaitHandle[2];
wait_handles[0] = _closeMEVT;
wait_handles[1] = _moreDataToSendMEVT;
waitResult = System.Threading.WaitHandle.WaitAny(wait_handles);
if (waitResult == 0)// 线程退出
return;
_moreDataToSendMEVT.Reset();
// 当有数据等待发送时
while (_sendQueue.Count > 0)
{
// 队列取出
_unlockedSendQueueAEVT.WaitOne();
local_buffer = (byte[])_sendQueue.Dequeue();
_unlockedSendQueueAEVT.Set();