TCPサーバーはバッファにデータを送信し、MainFormはバッファからデータを受信して何らかの処理を行います
バッファの lastDataReceive (TCP から) の時間をチェックするパラメータがあります。
また、MainForm の dataReceiveNow (バッファから) の時間を確認するパラメータもあります。
ここで、経過時間を計算したいと思います。lastDataReceive (TCP から) - dataReceiveNow (バッファーから) > 60 秒の場合、MessageBox.Show(" Connection Time out "); というメッセージが表示されます。
それを行うには2つの方法がありますが、どちらが最良の結果をもたらすかわかりませんか、実際には両方とも同じですか?
1つ目の方法: DateTime形式で経過時間を取得し、1秒の状態を確認する
private void CheckConnectionTimeOut()
{
if (DateTime.Now.Subtract(receiver.LastDataReceivedTime).TotalSeconds > 60)
{
MessageBox.Show("Connection Out");
}
else
{
// do what ever
}
}
2 番目の方法:経過時間を計算して経過時間を取得する
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
}
}