枚举局域网机器名,这么写不太合理吧
IPHostEntry myscanhost=Dns.GetHostByAddress(myscanip);这一句在连接失败时会抛出异常,当然慢使用Windows API:
http://www.yesky.com/20011124/206738.shtml

解决方案 »

  1.   

    IPHostEntry myscanhost=Dns.GetHostByAddress(myscanip);
    就是这里的问题
    如果该IP地址正在使用,那么没有问题,如果没有使用的话,就会像楼上的说的那样抛出异常,不过,就算立刻抛出异常也不会有多大影响的,原因自然是可想而知的。慢的原因主要是因为,该IP并不在网络上的时候(那台机器没有开或是别的什么原因)就会反复的查找,等到实在找不到了的时候才抛一个异常出来。
    这个问题用多线程做的话,就可以解决,不过,你需要用到委托以实现回调。另外,用线程池也会方便很多MSDN中文网站上有一个例子,就是这个程序,没有多线程,速度奇慢,像死机一样~~~
    代码写得很不好,估计那些代码是用NOTEPAD写的,大小写都不分的