我在搞乱 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() 调用来保持线程处于活动状态。