回答編集履歴
1
Task/非同期ではなく変数の生存期間に対する問題と認識を改めた上で一部撤回修正
answer
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
|
3
3
|
`Task.Run(() => ...)`が実行された時点で別スレッドでの処理が開始され、`Main()`が動作しているスレッドではない別のスレッドで非同期的に`Console.WriteLine(i)`が実行されます。
|
4
4
|
|
5
|
-
|
5
|
+
[追記]質問の方にTask/非同期以前に変数の生存期間に対する理解不足があると認識できてませんでした。以下の回答は取り消したいと思います。
|
6
6
|
|
7
|
+
~~`Task.Run`で非同期処理させた内容を待機するには`async/await`を利用することで非同期処理を同期的に扱うことができます。~~
|
8
|
+
|
7
9
|
```
|
8
10
|
class prog {
|
9
11
|
|
@@ -17,6 +19,6 @@
|
|
17
19
|
}
|
18
20
|
```
|
19
21
|
|
20
|
-
というように非同期での出力処理を`await`で待機させることで0~5まで順番に出力させられます。
|
22
|
+
~~というように非同期での出力処理を`await`で待機させることで0~5まで順番に出力させられます。~~
|
21
23
|
|
22
|
-
参考: [async および await を使用した非同期プログラミング](https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/async/)
|
24
|
+
~~参考: [async および await を使用した非同期プログラミング](https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/async/)~~
|