c#如何等待一个代理ping
本文关键字:ping 一个 代理 等待 何等待 | 更新日期: 2023-09-27 18:06:04
我正在尝试ping一个代理,并计算响应需要多长时间才能在继续我的代码之前获得ping,但是我的秒表太快了。我哪里出错了?
private async void idunno()
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
var x = await CanPing2();
Console.WriteLine("is proxy alvie: " + x);
stopWatch.Stop();
int ts = stopWatch.Elapsed.Milliseconds;
Console.WriteLine("RunTime " + ts);
Console.WriteLine("RunTime " + ts2);
}
public async Task<bool> CanPing2()
{
string ip = "170.130.59.107";
Console.WriteLine(ip);
Ping ping = new Ping();
try
{
PingReply reply = await ping.SendPingAsync(ip, 6000);
if (reply == null) return false;
Console.WriteLine("cp2 is alive: " + IPStatus.Success);
return (reply.Status == IPStatus.Success);
}
catch (PingException e)
{
Console.WriteLine("cp2: ex: " + IPStatus.Success);
return false;
}
}
问题是TimeSpan.Milliseconds
实际上是自最后一个完全经过的秒以来的毫秒数,而不是经过的总毫秒数。例如,如果某个东西运行了1500毫秒,那么Milliseconds
属性将返回500,而不是1500。您需要使用stopWatch.Elapsed.TotalMilliseconds
代替,顺便说一下,这是double
,而不是int
。