我想從192.168.1.1來ping 192.168.1.255到跳到下一個迭代,如果它需要太多的時間C#
於是我就用
FOR(i=1;i<=255;i++)
//each time, I test the IP address by pinging it with the following code
try {
PingReply reply = pinger.Send(AdresaIp);
pingable = reply.Status == IPStatus.Success;
}
catch (PingException)
{
// Discard PingExceptions and return false;
}
,我遇到的是這個問題:
PingReply reply = pinger.Send(AdresaIp);
pingable = reply.Status == IPStatus.Success;
當平從上方成功兩個線具有2毫秒的執行時間,但是當它失敗(巫會發生多次)它需要大約3秒,女巫是巨大的,如果我平255級的IP。
所以我想實現以下方式定時器:
if (timer > 1 second) continue;
//if it takes more than 1 second for the current iteration jump to the next
迭代。
我嘗試了System.Diagnostics.Stopwatch.StartNew(
),doesen't沒有爲我工作,因爲它給了我的時間後,ping測試。 我需要一些東西,可以讓我檢查ping測試是否正常工作,所以在達到1秒鐘的時候,我可以使用CONTINUE命令。
感謝,
弗拉德
'pinger'類型是什麼? – mjwills
Ping pinger = new Ping(); –
您可能還想考慮使用https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-write-a-simple-parallel-for-loop。 – mjwills