gpt4 book ai didi

c# - 这两个异步函数之间的区别

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:48 25 4
gpt4 key购买 nike

您好,我不明白以下两个 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;
});
}

还有这个:

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;
}

最佳答案

Both of them doesnt return IRestResponse, so I cant access StatusCode field.

他们返回一个 Task<IRestResponse> .您可以通过等待任务来获取接口(interface),例如

var task = Post(resource, objectToPost);
IRestResponse response = await task;

或一行(更常见):

var response = await Post(resource, objectToPost);

Difference between these two async functions

第二个例子要简单得多。第一个示例启动了一个额外的任务并将其可等待对象传递回调用者,而第二个示例直接等待 RestClient。我认为没有理由使用第一个示例中的结构。

关于c# - 这两个异步函数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50475886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com