【发布时间】:2011-12-11 07:03:29
【问题描述】:
我有一个简单的代码,可以通过标签组件在我的 GUI 中显示时间序列。此代码位于计时器的滴答事件中。有时,我得到“Microsoft.VisualStudio.Debugger.Runtime.CrossThreadMessagingException”,但我不知道为什么?我怎样才能捕捉到这个异常?如何更改我的代码以避免出现此异常?
//Calculate and show elapsed time
TimeSpan ElapsedTime = DateTime.Now - this.StartTime;
this.LabelElapsedTime.Text = String.Format("{0:00}:{1:00}:{2:00}", ElapsedTime.Hours, ElapsedTime.Minutes, ElapsedTime.Seconds);
【问题讨论】:
-
堆栈跟踪是什么?哪个计时器?
-
我只有一个间隔为 1000 毫秒的计时器。
-
你应该使用
Stopwatch而不是DateTime.Now - this.StartTime: msdn.microsoft.com/en-us/library/…。它更精确,旨在获取经过的时间。
标签: c# multithreading exception thread-safety