void PacketHandler() { new Thread(() => { while (!Disposed) { try { if (PacketQueue.TryDequeue(out Packet packet)) { OperationQueue.Enqueue(new Operation(GetPeer(packet.EndPoint), packet)); } else { PacketQueueBegin.Reset(); PacketQueueBegin.WaitOne(); } } catch (Exception e) { OnException(e); } } Console.WriteLine("Packet manager disposed"); }).Start(); }
public void EnqueuePacket(Packet packet) { PacketQueueBegin.Set(); PacketQueue.Enqueue(packet); }