我正在制作一个应用程序,我在该应用程序中使用一个计时器来更改 WPF C# .NET 中的标签内容。
在计时器的经过事件中,我正在编写以下代码
lblTimer.Content = "hello";
但它抛出一个
InvalidOperationException
并给出一条消息调用线程无法访问这个对象,因为另一个线程拥有它。我在 C# 中使用 .NET 框架 3.5 和 WPF。
请帮我。
提前致谢。
最佳答案
对于 .NET 4.0,使用 DispatcherTimer 要简单得多。事件处理程序然后在 UI 线程中,它可以直接设置控件的属性。
private DispatcherTimer updateTimer;
private void initTimer
{
updateTimer = new DispatcherTimer(DispatcherPriority.SystemIdle);
updateTimer.Tick += new EventHandler(OnUpdateTimerTick);
updateTimer.Interval = TimeSpan.FromMilliseconds(1000);
updateTimer.Start();
}
private void OnUpdateTimerTick(object sender, EventArgs e)
{
lblTimer.Content = "hello";
}