在后台线程上运行的方法中,如果我有一个需要从UI线程(Dispatcher.Invoke)中进行更新的局部变量,是否需要将其锁定?
private void OnTimerTick(...)
{
bool local = false;
System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
{
local = true;
}));
if (local) return;
}
由于可以在控件位于Invoke调用内部时调用处理程序,因此我不确定安全地执行此操作的最佳方法是什么。我绝对需要在UI线程中设置“本地”。