【发布时间】:2012-10-26 09:48:52
【问题描述】:
我在搞乱 UDP 侦听器和 TAP。
我有一个类负责监听传入的 UDP 并且可以启动和停止。 Start() 方法只是调用下面的方法
private async void Listen()
{
var resp = await _udpClient.ReceiveAsync().ConfigureAwait(continueOnCapturedContext: false);
var eventHandler = PacketReceived;
if (eventHandler != null)
eventHandler(this, new UdpPacketReceivedEventArgs(resp));
if (_running)
Listen();
}
这是正确的吗?我有点担心我可能会耗尽线程池,因为线程通过产生一个新的 Listen() 调用来保持活动状态。
【问题讨论】:
标签: c# multithreading io task-parallel-library async-await