我正在做的是在后台工作者中运行下面的代码。我的问题是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
}发布于 2013-11-22 05:21:59
您应该查看SendAsync方法,这将使这更容易处理(实际上,如果BackgroundWorker只是为了这个ping,那么您也许能够完全处理它。
发布于 2013-11-22 05:25:03
您已经提供了超时。至少有两个参数的所有重载中的第二个参数是超时(以毫秒为单位)。您使用的是10毫秒的超时。
https://stackoverflow.com/questions/20132026
复制相似问题