如何查找发送和接收数据之间的经过时间?

时间:2010-02-28 21:43:57

标签: c# asp.net

我正在使用System.Timers.Timer类。我在发送消息时启用,并在收到消息时禁用。如何计算已经过了多长时间。我将间隔设置为1秒

基本上,如果我没有收到ACK,我会在1000秒后重新传输数据。我最多转发5次,直到得到Ack。如果我在150ms之前收到了什么,那么我就停止重新开始了。

以下是代码:

timer1.interval = 1000;
port.Write(data)
timer1.enabled = true;

接收数据的事件处理程序。

timer1.enabled=false;

3 个答案:

答案 0 :(得分:6)

改用秒表。

Stopwatch clock = Stopwatch.StartNew();
port.Write(data);

并在处理程序

clock.Stop();
Console.WriteLine( clock.Elapsed );

答案 1 :(得分:1)

这不是System.Timers.Timer类的用途。请改为查看System.Diagnostics.Stopwatch。

答案 2 :(得分:0)

Timer课程不是用于衡量经过时间 - 而是用于定期生成事件。

您可能想要的是Stopwatch课程(请访问链接):

var sw = new Stopwatch();
sw.Start();
port.Write(data);
sw.Stop();
var elapased = sw.Elapsed;  // elapsed is a TimeSpan

Elapsed属性是TimeSpan,其中包含用于评估以不同方式传递的时间量的方法和属性。