c#ping.send()无限期,这将大大减慢计算机的速度



简而言之,我有2个主要问题:

1-是否有可能无限期地使用Send()方法的CC_1方法?

2-这会导致计算机大大减速吗?

我正在制作一个程序,简而言之,每当ping(MS(增加一定点以上,而不是平均值时,请向某个服务器建立平均ping并通知用户。现在,要实现这一目标,我自然必须将程序ping永久ping(当然要关闭(。

如果我无法永远这样做,我只能想到有一个不合理的 for循环或 while (true) {}循环。

我只是担心这会对用户的计算机产生重大压力。可以确认还是我太谨慎了?

如果要高效,请使用async io-这样,您的应用程序可以重新使用现有线程而无需处理封锁呼叫(因此不必要地消耗线程(:

public async Task PingForeverAsync( IPAddress host )
{
    Ping ping = new Ping();
    while( true )
    {
        Task interval = Task.Delay( 5000 );
        Task<PingReply> pingTask = ping.SendAsync( host, 5000 );
        PingReply reply = await pingTask.ConfigureAwait(false);
        // (Measure the reply time here and send out notification if necessary)
        await interval.ConfigureAwait(false); // await the 5000ms interval delay
    }
}

最新更新