我有一个WPF应用程序,它使用了一些多线程。我很想知道是否通过使用被认为是线程安全的Dispatcher.BeginInvoke()方法调用UI线程?通常我会使用lock语句来确保只有一个线程可以访问变量。以下是WPF应用程序中的线程安全吗?
this.Dispatcher.BeginInvoke(() =>
{
_counter ++;
});
答案 0 :(得分:6)
Dispatcher.BeginInvoke
method将在Dispatcher线程上运行其回调(通常是UI线程,除非你有多个Dispatchers)
因此,如果您只在UI线程上使用counter
变量,则不会出现线程问题。