尝试处置UdpClient时,我发现这是不可能的。对于以下内容:

UdpClient udpClient = new UdpClient();
udpClient.Dispose();

Visual Studio显示错误:



这是否意味着我应该继承UdpClient并公开Dispose(因为whatever implements IDisposable should be disposed of似乎是共识)?有某些原因我们不应该直接使用该类吗?还是在调用Close之后根本没有什么可处置的?

尽管using语句确实起作用-但在收听时不适合。

最佳答案

不,你不应该。
你应该调用UdpClient.Close ...

在这里查看源代码之后:http://referencesource.microsoft.com/#System/net/System/Net/Sockets/UDPClient.cs#7682e0ea2c48b5cb

看来您可以调用Close((IDisposable)updClient).Dispose,但从API角度来看,我认为调用Close是打算使用UDP客户端的方式...

这一切对我来说意义不大。

09-05 04:04