ケース 1: コンソール テスト アプリとライブラリがあります。テスト アプリは、並列で実行することを意図したライブラリ内のクラスで非同期メソッドを呼び出します。サンプルコード
for (int i = 0; i < 100; i++)
{
var myTask = RetrieveRecordSet<TestClass3>();
}
これは、コンソール アプリで期待どおりに機能します。つまり、100 個のタスクすべてが同時にキューに入れられ、タスクがバックグラウンドで並行して実行され、コンソール出力によって証明されます。
ケース 2: コンソール アプリではなく、WPF アプリで同じコードを使用する。何らかの理由で、タスクが順番に実行されます。
ケース 3: WPF アプリに次の変更を加えてみましたが、役に立ちませんでした。
for (int i = 0; i < 100; i++)
{
var myTask = Task.Factory.StartNew(() => RetrieveRecordSet<TestClass3>());
}
ケース 4: 次に、次のことを試しましたが、UI がブロックされ、まだシーケンシャルです
Parallel.For(0, 100, a => RetrieveRecordSet<TestClass3>());
WPF アプリでケース 1 から取得したのと同じノンブロッキングの並列動作を取得する方法はありますか?