2017-08-21 16 views
2

ライブラリをUWPに変換して、同時に実行される複数のスレッドを作成し、最後にすべてのデータを取得します。私はawaitasync、さらにTaskに探しています。私は、私が必要とするデータをTask<myType>に返すクラスを作るつもりだと思います。UWP並行スレッド

awaitを使用する代わりに、これらのインスタンスのすべてのインスタンスを同時に実行させ、個々のインスタンスが次のインスタンスを開始するのを待つことがUWP内にあるかどうか疑問に思っています。

ありがとうございます!

+0

'Task.Run'、' Task.WhenAll'。 –

+0

'Task'にはこのためのいくつかのヘルパーメソッドがあります。たとえば、' Task.AwaitAll'です。参照:https://msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx – Stefan

+0

恐らく 'Parallel.For'は簡単です – Haukinger

答えて

4

1つの方法は、各タスクをTaskにラップし、作成したらすぐに実行し、最後にすべてを待つことです。

いくつかのサンプルコード:

var tasks = new List<Task>(); 

var task1 = Task.Run(() => FetchData1()); 
tasks.Add(task1); 

var task2 = Task.Run(() => FetchData2()); 
tasks.Add(task2); 

Task.WaitAll(tasks.ToArray()); 
+1

うれしい私は助けることができます。ちなみに、これはUWPだけではありません。他のC#プロジェクトでも同じ戦略を使用できます。 –

+1

私はTask.Factory.StartNewをTask.Runに置き換えます。 – Jessica

+0

それは私がとにかく終わったものです:) –

関連する問題