【发布时间】:2013-05-15 17:02:24
【问题描述】:
TCP服务器发送数据到缓冲区,MainForm从缓冲区接收数据并做一些处理
我有一个参数来检查缓冲区上 lastDataReceive(来自 TCP)的时间。
我还有一个参数来检查 MainForm 上 dataReceiveNow(来自缓冲区)的时间。
现在,我要计算经过的时间,如果lastDataReceive (from TCP) - dataReceiveNow (from buffer) > 60 seconds,那么会提示MessageBox.Show(" Connection Time out ");
我有两种方法,但我不知道哪一种效果最好,或者实际上两者都一样?
第一种方法:使用DateTime格式获取经过的时间,检查1秒的条件
private void CheckConnectionTimeOut()
{
if (DateTime.Now.Subtract(receiver.LastDataReceivedTime).TotalSeconds > 60)
{
MessageBox.Show("Connection Out");
}
else
{
// do what ever
}
}
方法二:通过计算elapsedTicks得到已用时间
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
}
}
【问题讨论】:
标签: c# winforms datetime connection tcpclient