回答編集履歴
2
追記
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
コンソール出力を見ると、質問のコードの Console.WriteLine("[RunHeavyProcs] waiting all-task"); は for ループを抜けてから実行されており、その後 HeavyProc が非同期に実行されコンソールに [HeavyProc] 5 Start... と出力されています。
|
6
6
|
|
7
|
-
・・・と私が言うだけでは説得力がないかもしれないので、@IT の記事を紹介しておきます。下の方の「参考:Parallelクラスを使わずに並列実行する」のセクションを見てください。
|
7
|
+
・・・と私が言うだけでは説得力がないかもしれないので、@IT の記事を紹介しておきます。下の方の「参考:Parallelクラスを使わずに並列実行する」のセクションのコードの下の注記を見てください。
|
8
8
|
|
9
9
|
ループをParallelクラスで並列処理にするには?[C#/VB]
|
10
10
|
https://atmarkit.itmedia.co.jp/ait/articles/1706/21/news021.html
|
1
追記
test
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
> なぜ「5」が出力されるのか全く見当がつかない状態です。
|
2
2
|
|
3
3
|
for ループを抜けてから非同期処理が開始されていて、その時点の変数 i の値は質問のコード例では 5 だからでしょう。
|
4
|
+
|
5
|
+
コンソール出力を見ると、質問のコードの Console.WriteLine("[RunHeavyProcs] waiting all-task"); は for ループを抜けてから実行されており、その後 HeavyProc が非同期に実行されコンソールに [HeavyProc] 5 Start... と出力されています。
|
4
6
|
|
5
7
|
・・・と私が言うだけでは説得力がないかもしれないので、@IT の記事を紹介しておきます。下の方の「参考:Parallelクラスを使わずに並列実行する」のセクションを見てください。
|
6
8
|
|