为了账号安全,请及时绑定邮箱和手机立即绑定

C#Ping.Send()无限期,这会大大降低计算机的速度

C#Ping.Send()无限期,这会大大降低计算机的速度

C#
扬帆大鱼 2021-04-30 14:11:46
简而言之,我有两个主要问题:1-有没有可能无限期地使用该类中的Send()方法Ping?2-这会导致计算机速度大大降低吗?我正在编写一个程序,可以在短时间内建立到特定服务器的平均ping,并在ping(ms)超过平均值的某个点以上时通知用户。现在,要完成此操作,我自然要使程序永远对服务器进行ping操作(当然,直到程序关闭为止)。如果没有办法可以永远做到这一点,那么我只能想到存在一个不合理的大for循环或一个while (true) {}循环。我只是担心这会给用户的计算机造成很大的压力。可以确认吗?还是我太谨慎了?
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

如果您想变得超级高效,请使用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

    }

}


查看完整回答
反对 回复 2021-05-15
  • 1 回答
  • 0 关注
  • 637 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信