TCP服务器发送数据到缓冲区,MainForm从缓冲区接收数据并做一些处理
我有一个参数来检查缓冲区上lastDataReceive(来自TCP)的时间。
我还有一个参数来检查 MainForm 上 dataReceiveNow (来自缓冲区)的时间。
现在,我要计算经过的时间,如果 lastDataReceive (from TCP) - dataReceiveNow (from buffer) > 60 秒,那么它会提示 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
}
}