C#async await非同期プログラミングの概要
3042 ワード
ここではasyncについて簡単に説明します await非同期プログラミングの使い方.
例えば、HttpClientのPostAsyncは、Http POST要求を非同期で呼び出す.
非同期POSTが返す情報を取得し、いくつかの動作を行うための非同期メソッドをさらに記述する.
ここで返される情報は暗号化されており、文字化されているわけではありません.
例えば、HttpClientのPostAsyncは、Http POST要求を非同期で呼び出す.
public async Task PostAsync(string url, string strJson)//post
{
try
{
HttpContent content = new StringContent(strJson);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
// HttpClient Post
HttpResponseMessage res = await client.PostAsync(url, content);
if (res.StatusCode == System.Net.HttpStatusCode.OK)
{
Thread.Sleep(1000);// 1
string str = res.Content.ReadAsStringAsync().Result;
return str;
}
else
return null;
}
catch (Exception ex)
{
return null;
}
}
呼び出しの作成方法:非同期POSTが返す情報を取得し、いくつかの動作を行うための非同期メソッドをさらに記述する.
///
/// , POST , 。
///
/// POST
/// POST json
///
private async Task GetContentAsync(string url, string strJson)
{
HttpClientHelper cl = new HttpClientHelper();
var content = await cl.PostAsync(url, strJson);
textBox6.Text = content;
return content;
}
テストの例: private void button19_Click(object sender, EventArgs e)
{
InputText();
jsonStuInfo stuInfo = new jsonStuInfo();
stuInfo.sTID = this.sTID;
stuInfo.nChildTID = this.nChildTID;
string url = this.address + "Api_TestProc_Paper_GetPaperInfo";
string strJson = JsonConvert.SerializeObject(stuInfo);
var zipTeaInfo = GetContentAsync(url, strJson);
textBox6.Text = zipTeaInfo.IsCompleted.ToString();
}
ここで返される情報は暗号化されており、文字化されているわけではありません.