在WPF中是UI dispatcher.begininvoke方法线程安全吗?

时间:2010-09-12 14:08:05

标签: c# wpf multithreading

我有一个WPF应用程序,它使用了一些多线程。我很想知道是否通过使用被认为是线程安全的Dispatcher.BeginInvoke()方法调用UI线程?通常我会使用lock语句来确保只有一个线程可以访问变量。以下是WPF应用程序中的线程安全吗?

this.Dispatcher.BeginInvoke(() =>
{
    _counter ++;
});

1 个答案:

答案 0 :(得分:6)

Dispatcher.BeginInvoke method将在Dispatcher线程上运行其回调(通常是UI线程,除非你有多个Dispatchers)

因此,如果您只在UI线程上使用counter变量,则不会出现线程问题。