簡體   English   中英

在BackgroundWorker中取消/超時Ping

[英]Cancel/Timeout Ping in BackgroundWorker

我正在做的是在backgroundworker中運行以下代碼。 我的問題是Ping.send()方法需要幾秒鍾(6-8)才能用超時回復。 我想做的是,在x的時間后取消/殺死Ping.Send方法,或者,如果有可能自己超時,但要在2-3秒內完成。 我和一個計時器一起玩,但是我無法使它正常工作。 有人對我應該如何建議嗎?

編輯:回復成功后,它會在相當長的時間內回復我可以接受的時間。

Ping ping = new Ping();
byte[] buffer = new byte[bufferSize];
PingOptions pingOpt = new PingOptions(128, true);
try
{              
    PingReply pingReply = ping.Send(PCName, 10, buffer, pingOpt);
    if (pingReply.Status == IPStatus.Success)
    {
        //Do Something
    }
    else                                 
    {
        //Do Something
    }
}
catch
{
    //Do Something
}

您應該查看SendAsync方法,這將使此方法更易於處理(實際上,如果BackgroundWorker僅在此ping中,那么您可能可以將其全部處置。

已經提供了超時。 在具有至少兩個參數的所有重載中,第二個參數是超時(以毫秒為單位)。 您正在使用10毫秒的超時時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM