我试图通过定期查看'来监控连接。并行'超时' ping不会及时回来的任务。
var pingTask = await Task.WhenAny(
Task.Run(() =>
{
try
{
PingThing();
return true;
}
catch
{
return false;
}
}),
Task.Run(() =>
{
Task.Delay(5000).Wait();
return false;
})
);
if (!pingTask.Result) //etc...
我似乎得到的情况是“其他东西'优先考虑,这个代码放在一边。所以ping通常需要几毫秒,我得到五秒钟的超时。
问题是,当我最初在代码中放一个秒表来检查时,它并没有说出5秒钟之类的话。让我想知道CPU是不是在关闭我的线程做其他工作。但这反过来让我想知道为什么它会关闭第一个任务,但保持第二个任务(否则'超时'任务也需要更长时间)。
所以我有几个问题:
漏洞抽象FTW ......