回答編集履歴

9

久々に見たらコードが明らかにコンパイルエラーなので、直しました。

2020/02/18 05:11

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -68,10 +68,6 @@
68
68
 
69
69
 
70
70
 
71
- string responseData = "";
72
-
73
-
74
-
75
71
  // リクエスト送信して、タスクの返りを待つ
76
72
 
77
73
  var responseData = await sendRequest (url, json);

8

コメントがずれてて気になる。(そもそもコメントを消したいが、掲示されたコードなので残しておく)

2020/02/18 05:11

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
 
74
74
 
75
-   // リクエスト送信して、タスクの返りを待つ
75
+ // リクエスト送信して、タスクの返りを待つ
76
76
 
77
77
  var responseData = await sendRequest (url, json);
78
78
 

7

awaitから受け取る値が間違っていたので修正

2019/11/19 03:18

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -74,11 +74,7 @@
74
74
 
75
75
    // リクエスト送信して、タスクの返りを待つ
76
76
 
77
- var task = await sendRequest (url, json);
77
+ var responseData = await sendRequest (url, json);
78
-
79
- // レスポンスを取得
80
-
81
- responseData = task.Result;
82
78
 
83
79
  if (responseData.Length == 0) {
84
80
 
@@ -88,7 +84,7 @@
88
84
 
89
85
 
90
86
 
91
- var task2 = await sendRequest (url, json);
87
+ var responseData2 = await sendRequest (url, json);
92
88
 
93
89
  }
94
90
 

6

追記

2019/11/19 03:15

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -48,7 +48,15 @@
48
48
 
49
49
  ---
50
50
 
51
+
52
+
53
+ `ContinueWith`の代わりに`await`を使えばネストを深くさせずに書けます。
54
+
51
- [非同期 Main](https://ufcpp.net/study/csharp/structured/miscentrypoint/#async-main)
55
+ `await`を`Main`メソッドで使うには[非同期 Main](https://ufcpp.net/study/csharp/structured/miscentrypoint/#async-main)にする必要があります。
56
+
57
+ 下記コードは環境がないため、イメージで書きました。誤りがあればコメントをお願いします。
58
+
59
+
52
60
 
53
61
  ```C#
54
62
 

5

追記

2019/11/19 03:06

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -45,3 +45,43 @@
45
45
  });
46
46
 
47
47
  ```
48
+
49
+ ---
50
+
51
+ [非同期 Main](https://ufcpp.net/study/csharp/structured/miscentrypoint/#async-main)
52
+
53
+ ```C#
54
+
55
+ static async Task Main () {
56
+
57
+ string url = "http://******"; // post先
58
+
59
+ string json = "{\"age\":\"44歳\",\"name\":\"大泉 洋\"}"; // 送信するJSON
60
+
61
+
62
+
63
+ string responseData = "";
64
+
65
+
66
+
67
+   // リクエスト送信して、タスクの返りを待つ
68
+
69
+ var task = await sendRequest (url, json);
70
+
71
+ // レスポンスを取得
72
+
73
+ responseData = task.Result;
74
+
75
+ if (responseData.Length == 0) {
76
+
77
+ Console.Write ("失敗");
78
+
79
+ }
80
+
81
+
82
+
83
+ var task2 = await sendRequest (url, json);
84
+
85
+ }
86
+
87
+ ```

4

文章の修正

2019/11/19 02:45

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- レスポンスで受け取った値は同じタスクの中で参照するようにしてください。
23
+ レスポンスで受け取った値はそのタスクの中だけで参照するようにしてください。
24
24
 
25
25
  ```C#
26
26
 

3

文章の修正

2019/11/18 08:28

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -1,16 +1,16 @@
1
- 下記の非同期処理はレスポンスが返ってくるまで**非同期で**待機しています。
1
+ 下記のタスクはレスポンスが返ってくるまで**非同期で**待機しています。
2
2
 
3
3
  ```C#
4
4
 
5
5
  (task) =>
6
6
 
7
- {
7
+ {
8
8
 
9
- // レスポンスを取得
9
+ // レスポンスを取得
10
10
 
11
- responseData = task.Result;
11
+ responseData = task.Result;
12
12
 
13
- }
13
+ }
14
14
 
15
15
  ```
16
16
 
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- レスポンスで受け取った値は同じ非同期処理の中で参照するようにしてください。
23
+ レスポンスで受け取った値は同じタスクの中で参照するようにしてください。
24
24
 
25
25
  ```C#
26
26
 

2

文章の修正

2019/11/18 08:28

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
@@ -1,4 +1,4 @@
1
- 下記の非同期処理はレスポンスが返ってくるまで待機しています。
1
+ 下記の非同期処理はレスポンスが返ってくるまで**非同期で**待機しています。
2
2
 
3
3
  ```C#
4
4
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 非同期で待機しているということは、sendRequest(url, json).ContinueWith()を呼び出した元のスレッドはレスポンスを待たずに続行しますので、大体はレスポンスを受け取る前に`if(responseData.Length == 0)`の処理が実行されると思います。
19
+ 非同期で待機しているということは、`sendRequest(url, json).ContinueWith(~)`を呼び出した元のスレッドはレスポンスを待たずに処理を続行しますので、大体はレスポンスを受け取る前に`if(responseData.Length == 0)`の処理が実行されると思います。
20
20
 
21
21
 
22
22
 

1

文章の修正

2019/11/18 08:27

投稿

BluOxy
BluOxy

スコア2663

test CHANGED
File without changes