使用Application.Current.Dispatcher.Invoke块的StartNew()

时间:2016-02-18 19:18:05

标签: .net task-parallel-library

鉴于此代码:

Task.Factory.StartNew(() =>
{
    Application.Current.Dispatcher.Invoke(() =>
    {
        //UI Code 1            
    });
    //Non UI Code
    taskResult = SomeMethod();
    Application.Current.Dispatcher.Invoke(() =>
    {
        //UI Code 2
        if (taskResult)...
    });
});

UI Code 2执行完毕后执行Non UI Code还是在Non UI Code仍在运行时执行?

换句话说,假设在UI Code 2块中调用taskResult变量将始终具有非UI线程处理的结果是否安全?

1 个答案:

答案 0 :(得分:1)

鉴于Dispatcher.Invoke的MSDN说明:

  

在线程上执行指定的委托同步   Dispatcher与。

相关联

您的问题的答案是