【发布时间】:2015-07-16 05:27:34
【问题描述】:
我有一个 IP 地址列表。我想立即对所有这些启动一个 ping 过程,并且应该是异步的。
private async Task<List<PingReply>> PingAsync()
{
Ping pingSender = new Ping();
var tasks = theListOfIPs.Select(ip => pingSender.SendPingAsyn(ip,2000));
var results = await Task.WhenAll(tasks);
return results.ToList();
}
据我了解,此操作将等到返回所有 ping 结果。我想要做的是,每当完成一个结果时,我都想利用该结果。因此,即一旦一个 ping 返回结果,我想立即存储它,而无需等待其他 ping 完成。
我该怎么做?
【问题讨论】:
-
您可以使用 Task.WaitAny 并循环直到所有任务完成
标签: c# asp.net asynchronous ip ping