R. *_*Kut 1 c# asynchronous async-await
您好我没有得到以下两个asnyc函数之间的区别,有人可以解释一下吗?它们都没有返回IRestResponse,所以我无法访问StatusCode字段.我必须在这里投吗?
public async Task<IRestResponse> Post<T>(string Ressource, T ObjTOPost) where T : new()
{
return await Task.Factory.StartNew(() =>
{
var client = new RestClient("test.com");
var request = new RestRequest(Ressource, Method.POST);
var response = client.Execute(request);
return response;
});
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
public async Task<IRestResponse> Post<T>(string Ressource, T ObjTOPost) where T : new()
{
var client = new RestClient("test.com");
var request = new RestRequest(Ressource, Method.POST);
var response = await client.ExecuteTaskAsync<T>(request);
return response;
}
Run Code Online (Sandbox Code Playgroud)
它们都没有返回IRestResponse,所以我无法访问StatusCode字段.
他们回来了Task<IRestResponse>.您可以通过等待任务来获取界面,例如
var task = Post(resource, objectToPost);
IRestResponse response = await task;
Run Code Online (Sandbox Code Playgroud)
或者在一行(更常见):
var response = await Post(resource, objectToPost);
Run Code Online (Sandbox Code Playgroud)
这两个异步函数之间的区别
第二个例子更直截了当.第一个示例旋转一个额外的任务并将其等待返回给调用者,而第二个示例直接等待RestClient.我认为没有理由在第一个例子中使用该结构.
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |