与Dispatcher.Invoke一起在后台线程上的局部变量

时间:2018-06-22 15:10:51

标签: wpf thread-safety dispatcher

在后台线程上运行的方法中,如果我有一个需要从UI线程(Dispatcher.Invoke)中进行更新的局部变量,是否需要将其锁定?

private void OnTimerTick(...)
    {
        bool local = false;

        System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
        {
            local = true;
        }));

        if (local) return;
    }

由于可以在控件位于Invoke调用内部时调用处理程序,因此我不确定安全地执行此操作的最佳方法是什么。我绝对需要在UI线程中设置“本地”。

0 个答案:

没有答案