尝试处置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客户端的方式...
这一切对我来说意义不大。