我正在构建一个 C# windows 窗体应用程序,该应用程序按用户可以指定的名称 ping 多台计算机。
我正在使用 System.Net.NetworkInformation.Ping 类和 SendAsync 方法,以及处理结果的方法。
当用户指定不存在的计算机名称时,就会出现我遇到的问题。但是,我在 Application.Run(new Form()) (整个表单的主要方法)处获得了 TargetInvocationException,而不是 Ping 向我的回调方法返回错误。我曾尝试使用 try/catch 来包围相关代码,但它们似乎从未捕捉到异常
以下是 ping 的相关代码:
Ping p = null;
try
{
p = new Ping();
p.PingCompleted += new PingCompletedEventHandler (updateUI);
p.SendAsync(computername, 10, computername);
}
catch (Exception)
{
((IDisposable)p).Dispose();
MessageBox.Show("Ping Failed...");
}