-2

我需要同时执行两个方法,只有在完成接下来的事情后才能继续,如果使用任务(它是一个 WPF 应用程序),我有一个 UI 会引发错误。

Task Data= Task.Factory.StartNew(() => Readdetails());
Task Data2= Task.Factory.StartNew(() => ReadProcedure());

Data.Wait();
Data2.Wait();

但我收到错误(必须在同一线程上创建依赖源作为依赖对象)。

我需要这样的东西。

private void ReadProcedure()
        {
            this.Pro = //some stuff;
        }

private void ReadProcedure2()
        {
            this.Pro2 = //some stuff;
        }

if(this.pro!=null && this.pro2!=null)
{
//other things to carry out.
}

我尝试使用 Dispacter,但它似乎仍然无法正常工作。

4

1 回答 1

0

要等待多个任务,您可以使用 Task.WaitAll

Task.WaitAll(Data,Data2);

要更新 UI,您可以使用同步上下文

Task UITask= Task.Factory.StartNew(() =>
    {
     if(this.pro!=null && this.pro2!=null)
     {
      //other things to carry out.
     }
    }, TaskScheduler.FromCurrentSynchronizationContext());

您可以使用TaskFactory.ContinueWhenAll将以上两者结合起来。

于 2017-02-02T18:17:49.067 回答