傳遞一個無效的IP,當我遇到一些麻煩SendAsync方法 - 0.0.0.51Ping.SendAsync不打回電話PingCompletedEventHandler
問題是,在回撥方法(pingSender_PingCompleted)甚至不被調用。我從來沒有看到任何錯誤。
IPAddress.TypeParse將此IP視爲「有效」IP。
這是我的代碼;請讓我知道我在這裏沒有看到什麼。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Program c = new Program();
try
{
c.PingStore("0.0.0.51");
Console.WriteLine("Pinged without exceptions");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void PingStore(string ipAddress)
{
Ping pingSender = new Ping();
pingSender.PingCompleted += new PingCompletedEventHandler(pingSender_PingCompleted);
pingSender.SendAsync(ipAddress, null);
}
private void pingSender_PingCompleted(object sender, PingCompletedEventArgs e)
{
Console.WriteLine("PingCompleted invoked. continue to be happy");
}
}
}
請注意,我不能:
通過使用正則表達式
我會假設這是因爲你正在使用'異步'就像一場火災而忘了。你有沒有嘗試過使用'await pingSender.SendAsync(ipAddress,null);'? –
感謝評論@TravisJ,但有一個等待將擊敗對我有一個異步方法的目的。我期待這種方法被同時調用100次。如果事情在SendAsync期間南下,我不應該在回調中看到錯誤 - e.Error? – Nandun
您是否嘗試過圍繞您的'pingSender.SendAsync()'調用包裝try/catch以確保它不會被剔除? – itsme86