我正在做的是在后台工作程序中运行以下代码。我的问题是Ping.send()方法需要几秒钟(6-8)来回复Timeout。我想做的是,在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
}
答案 0 :(得分:0)
您应该查看SendAsync方法,这样可以更容易处理(事实上,如果BackgroundWorker只是用于此ping,那么您可以完全处理它。
答案 1 :(得分:0)
您已经提供超时。所有具有至少两个参数的重载中的第二个参数是超时(以毫秒为单位)。你正在使用10毫秒的超时。