我正在制作一个应用程序,我在该应用程序中使用一个计时器来更改 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";
}

10-07 18:42