回答編集履歴
1
投稿が欠けていました。
test
CHANGED
@@ -6,13 +6,15 @@
|
|
6
6
|
|
7
7
|
プロシージャにasyncキーワードを使用するとプロシージャ内で
|
8
8
|
|
9
|
-
①同期関数を使用して同期
|
9
|
+
①同期関数を使用して同期処理をしても問題ない。通常の同期処理動作になる。
|
10
10
|
|
11
11
|
②非同期関数の場合、非同期待ちが可能になる。
|
12
12
|
|
13
|
-
③同期サブルーチン/関数を非同期で待ちたいときは、
|
13
|
+
③同期サブルーチン/同期関数を非同期で待ちたいときは、
|
14
14
|
|
15
15
|
private async void button1_Click(object sender, EventArgs e)イベントプロシージャ内で
|
16
|
+
|
17
|
+
|
16
18
|
|
17
19
|
5秒待ちの同期サブルーチンを非同期待ちしたいときは、
|
18
20
|
|
@@ -27,3 +29,35 @@
|
|
27
29
|
}
|
28
30
|
|
29
31
|
```
|
32
|
+
|
33
|
+
5秒待ちの同期関数を非同期待ちして戻り値が必要なときは、
|
34
|
+
|
35
|
+
```ここに言語を入力
|
36
|
+
|
37
|
+
private async void button1_Click(object sender, EventArgs e)
|
38
|
+
|
39
|
+
{
|
40
|
+
|
41
|
+
Task<int> Task_Proc = Task.Run(() => { return funSyncDelay(5000); });
|
42
|
+
|
43
|
+
await Task_Proc;
|
44
|
+
|
45
|
+
Console.WriteLine("Task_Proc={0}", Task_Proc.Result);
|
46
|
+
|
47
|
+
}
|
48
|
+
|
49
|
+
public int funSyncDelay(int nMillisecond)
|
50
|
+
|
51
|
+
{
|
52
|
+
|
53
|
+
System.Threading.Thread.Sleep(nMillisecond);
|
54
|
+
|
55
|
+
return 1;
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
```
|
60
|
+
|
61
|
+
ということで、プロシージャ内で非同期待ちをする可能性があればひとまず
|
62
|
+
|
63
|
+
asyncキーワードをプロシージャ名に付加しておきましょうということですよね?
|