【发布时间】:2012-10-08 06:44:26
【问题描述】:
我有以下代码块,它影响了我的程序效率。这里的问题是,如果目标主机存在,一切正常。但如果它确实存在,执行起来需要很长时间。最后,我发现“udp.Close()”占据了大部分的执行时间。如果我不调用close方法,效率还是不错的。
如果我不调用 close 方法,谁能帮我告诉我有什么缺点?非常感谢。
{ // This is my code block, I need to execute it many many times.
string ipAddress = Dns.GetHostAddresses("joe-pc").FirstOrDefault().ToString();
UdpClient udp = new UdpClient(ipAddress, Port);
udp.Send(msg, msg.Length);
udp.Close();
udp = null;
}
【问题讨论】:
-
旁注 - 为什么之后将其设置为
null? -
根据我的个人经验,需要设置udp = null;在 udp.Close() 之后的最后。我使用内存分析器(dotmemory)检查了保留的实例,发现 UdpClient 实例仍然存在,除非 udp = null;被使用。