WhenAll 会无限期地等待多个 ping 命令的原因是由于 ping 命令在执行时会一直等待目标主机的响应,如果目标主机不可达或没有响应,ping 命令就会一直等待下去。当使用 WhenAll 方法来并发执行多个 ping 命令时,如果其中一个 ping 命令遇到无响应的情况,其他的 ping 命令也会因为等待其中一个命令而进入等待状态,从而导致整个任务无法完成。
为了解决这个问题,可以设置 ping 命令的超时时间,当超过设定的时间仍未收到响应时,可以认为目标主机不可达或没有响应,然后终止该命令的执行,继续执行其他的 ping 命令。在 .NET 中,可以使用 Task.WhenAny 方法来并发执行多个 ping 命令,并设置超时时间来避免无限期地等待。
推荐的腾讯云相关产品:腾讯云云服务器(CVM) 腾讯云云服务器(Cloud Virtual Machine,CVM)是一种可随时获取的计算资源,提供可调整容量的云端服务器。它提供了丰富的配置选项和网络特性,可满足不同规模应用的需求。您可以根据需要自由选择操作系统、存储、网络和其他资源,实现弹性扩展和自动化部署。腾讯云云服务器支持多种计费模式和支付方式,满足不同用户的需求。
了解更多:腾讯云云服务器
领取专属 10元无门槛券
手把手带您无忧上云