回答編集履歴

1

投稿が欠けていました。

2021/08/17 08:46

投稿

K_Satr
K_Satr

スコア7

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キーワードをプロシージャ名に付加しておきましょうということですよね?