这是研究使用异步的适当时机吗?

时间:2014-02-27 15:14:08

标签: c# asynchronous async-await

我正在开发一个程序来ping一长串的IP地址。目前数据库中大约有250个要ping,并且需要很长时间才能完成所有这些操作。该程序还会在该状态发生变化时发送电子邮件警报(从失败变为成功,反之亦然)。在最坏的情况下,每次ping都需要两秒钟(如果它们失败)。因此整个程序通常需要大约8分钟才能完成。

如果可能的话,我希望电子邮件提醒更接近实时。是否会异步调用ping函数允许它们更快地启动而无需等待之前的响应?我是任何类型的非同步编程的新手,我不确定这是否适合使用它。

如果是这样的话,我们非常感谢任何有关开始使用此资源的指示!

1 个答案:

答案 0 :(得分:1)

网络应支持在一秒钟内发送250次ping。您可能应该使用异步IO一次启动所有ping,然后使用Task.WaitAll来收集结果。这样你就可以在2秒内完成。

有250个工作项我非常喜欢使用异步IO的解决方案。如果愿意,也可以使用线程。

找出Ping类提供的异步方法。了解async/awaitTask。这对他们来说是一个很好的用例。