-2

2 つのメソッドを同時に実行する必要があります。この次の処理が完了した後にのみ続行する必要があります。タスクを使用するとエラーが発生する UI があります (WPF アプリケーションです)。

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 を更新するには、synchronizationcontextを使用できます。

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

TaskFactory.ContinueWhenAllを使用して、上記の 2 つを組み合わせることができます。

于 2017-02-02T18:17:49.067 に答える