我正在开发一个程序来ping一长串的IP地址。目前数据库中大约有250个要ping,并且需要很长时间才能完成所有这些操作。该程序还会在该状态发生变化时发送电子邮件警报(从失败变为成功,反之亦然)。在最坏的情况下,每次ping都需要两秒钟(如果它们失败)。因此整个程序通常需要大约8分钟才能完成。
如果可能的话,我希望电子邮件提醒更接近实时。是否会异步调用ping函数允许它们更快地启动而无需等待之前的响应?我是任何类型的非同步编程的新手,我不确定这是否适合使用它。
如果是这样的话,我们非常感谢任何有关开始使用此资源的指示!
答案 0 :(得分:1)
网络应支持在一秒钟内发送250次ping。您可能应该使用异步IO一次启动所有ping,然后使用Task.WaitAll
来收集结果。这样你就可以在2秒内完成。
有250个工作项我非常喜欢使用异步IO的解决方案。如果愿意,也可以使用线程。
找出Ping
类提供的异步方法。了解async/await
和Task
。这对他们来说是一个很好的用例。