嗨,如果有人能向我解释这两种从控制器返回数据的方法之间的区别,我就会徘徊 . 使用on方法优于另一方是否有优势或理由?
我猜测返回的函数只是进一步调用 Response.WriteAsync
,但我不确定 .
使用postman这两种方法都返回完全相同的响应,所以我只是对这两个选项感到好奇,是否有理由使用一个选项而不仅仅是个人偏好 .
在Response.WriteAsync之间:
[HttpGet("Fetch_WriteAsync")]
public async Task Fetch_AsyncWrite()
{
HttpContext.Response.ContentType = "application/json";
await HttpContext.Response.WriteAsync(JsonConvert.SerializeObject(new { data = "my_fetched_data" }));
}
然后回来:
[HttpGet("Fetch_Return")]
public async Task<string> Fetch_Return()
{
HttpContext.Response.ContentType = "application/json";
return await Task.Factory.StartNew(()=>JsonConvert.SerializeObject(new { data = "my_fetched_data" }));
}
1 回答
基本上,您的代码在引擎盖下的执行方式存在差异 . 在第一种情况下,你有这个
ASP.NET线程将用于执行您的代码 .
而在第二种情况下,你有这个
将使用线程池线程 .
如上所述here:
话虽这么说,我会选择第一个解决方案 .