回答編集履歴

1

動作検証済みサンプルコードを追記

2016/05/04 04:23

投稿

tkanda
tkanda

スコア2425

test CHANGED
@@ -45,3 +45,109 @@
45
45
 
46
46
 
47
47
  (参考)[Async および Await を使用した非同期プログラミング (C# および Visual Basic)](https://msdn.microsoft.com/ja-jp/library/hh191443.aspx)
48
+
49
+
50
+
51
+ ###(追記)動作検証済みサンプルコード
52
+
53
+
54
+
55
+ ```C#
56
+
57
+ using System;
58
+
59
+ using System.Threading.Tasks;
60
+
61
+ using System.Windows.Forms;
62
+
63
+ using System.Diagnostics;
64
+
65
+ using System.Net.Http;
66
+
67
+
68
+
69
+ namespace AsyncTest
70
+
71
+ {
72
+
73
+ public partial class Form1 : Form
74
+
75
+ {
76
+
77
+ public Form1()
78
+
79
+ {
80
+
81
+ InitializeComponent();
82
+
83
+ }
84
+
85
+
86
+
87
+ private async void button1_Click(object sender, EventArgs e)
88
+
89
+ {
90
+
91
+ Debug.WriteLine("Clicked!");
92
+
93
+ string s = await WebConn.GetApiAsync();
94
+
95
+ Debug.WriteLine("check 3, len = " + s.Length);
96
+
97
+ }
98
+
99
+ }
100
+
101
+
102
+
103
+ public class WebConn
104
+
105
+ {
106
+
107
+ public static async Task<string> GetApiAsync()
108
+
109
+ {
110
+
111
+ using (HttpClient client = new HttpClient())
112
+
113
+ {
114
+
115
+ Debug.WriteLine("check 1");
116
+
117
+ string urlContents = await client.GetStringAsync("http://msdn.microsoft.com");
118
+
119
+ Debug.WriteLine("check 2");
120
+
121
+ return urlContents;
122
+
123
+ }
124
+
125
+ }
126
+
127
+ }
128
+
129
+ }
130
+
131
+
132
+
133
+ ```
134
+
135
+
136
+
137
+ Form1は、空のWindowsフォームに、ボタンを一つ貼り付け打だけのものです。
138
+
139
+ OS:Windows 10 (10.0.10586)
140
+
141
+ VS: Visual Studio 2015
142
+
143
+ .NetFramework: 4.5
144
+
145
+
146
+
147
+ 上記のコードで、コンパイルエラー、実行エラーともに発生せず、期待通りの動作ができることを確認しました。
148
+
149
+
150
+
151
+ ご参考になれば。
152
+
153
+