前提・実現したいこと
APIの同期・非同期について無知なため教示いただきたいです。
環境
Visual Studio 2018
C#
現状の問題点
ボタンを押した際にAPIにGETリクエストを送り、返ってきた結果をラベルに表示されるというものですが、ブレイクポイントで処理順を確認してみると
表示⇒GETリクエスト
という順で処理がされています。
async/await の記事をみて実装してみたのですが、awaitで待っているような気配が無く質問させていただきました。
自分の中では
GETリクエストメソッドが実行される⇒awaitで結果が保管されるまで待つ⇒メインメソッドに戻り表示
という認識だったのですが、awaitの使い方が間違っているのでしょうか?
ソースコード
static public string token; private void button1_Click(object sender, EventArgs e) { string url = "https://hogehoge.com"; var data = Task.Run(() => { return HttpGet(url, token); }); label1.Text = data.Result;
}
//GETリクエスト処理
async public Task<string> HttpGet(string url, string token)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
var response = await client.GetAsync(url); return await response.Content.ReadAsStringAsync(); }

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 02:40