首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查连接超时,最好使用长elapsedTicks还是DateTime elapsedTime检查?

检查连接超时,最好使用长elapsedTicks还是DateTime elapsedTime检查?
EN

Stack Overflow用户
提问于 2013-05-21 02:45:12
回答 1查看 285关注 0票数 1

TCP服务器将数据发送到缓冲区,MainForm从缓冲区接收数据并进行处理。

我有一个参数来检查缓冲区上的lastDataReceive时间(来自TCP)。

我也有一个参数来检查dataReceiveNow (来自缓冲区)在MainForm上的时间。

现在,如果lastDataReceive (来自TCP) - dataReceiveNow (来自缓冲区)>60秒,那么它将提示MessageBox.Show(“连接超时");

我有两种方法来做,但我不知道哪一种给出最好的结果,或者实际上两者是相同的?

第一种方法:用DateTime格式获取时间,并检查1秒的条件。

代码语言:javascript
复制
private void CheckConnectionTimeOut()
{
    if (DateTime.Now.Subtract(receiver.LastDataReceivedTime).TotalSeconds > 60)
    {
        MessageBox.Show("Connection Out");
    }
    else
    {
        // do what ever
    }
}

第二种方法:通过计算elapsedTicks来获得缩短时间

代码语言:javascript
复制
private void CheckConnectionTimeOut()
{
    long dataTimeOut = (long)TimeSpan.FromTicks(receiver.LastDataTick - dataReceiveTickNow).TotalSeconds;

    DateTime dt = new DateTime(dataTimeOut);

    if (dt.Second > 60)
    {
        MessageBox.Show("Connection Out");
    }
    else
    { 
         // do what ever           
    }
}
EN

回答 1

Stack Overflow用户

发布于 2013-05-21 05:03:31

这两种方法都不推荐,也不推荐可能真的很危险

相反,使用Stopwatch类来度量经过的持续时间。参考这里的文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16661360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档