【发布时间】:2013-05-25 14:37:26
【问题描述】:
我每隔几秒就会收到一个包含“1”的字符串。我正在尝试获取接收到的字符串和下一个字符串之间的经过时间以返回经过的时间。我做错了什么。我得到的结果是 0,而字符串每秒更新一次,所以我应该读 1。我很确定逻辑中有错误,但我看不到它在哪里。这应该运行几个小时并在每次我得到字符串“giriRicevuti”的更新时更新。
class Rpm
{
public void CalcolaRPM(string giriRicevuti, out long RPM)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
if (giriRicevuti == "1")
{
stopWatch.Stop();
}
long duration = stopWatch.ElapsedMilliseconds;
RPM =(duration/1000);
}
}
【问题讨论】:
-
什么时候调用该方法?
-
您的方法启动秒表,然后立即测量秒表已经运行了多长时间——这显然不是很长时间,因为您刚刚启动了秒表。
-
@dtb,当我得到下一个“1”时应该停止。这就是我想要达到的目标。我已经设置了停止的条件。但显然不起作用。
-
@BernhardPoiss 每次我从串口收到一条包含“1”的消息。
-
使用 Equals 方法进行比较。 string.stackoverflow.com/questions/1659097/c-string-equals-vs
标签: c# elapsedtime