爲什麼從Web Api方法返回Task<T>
的做法不是默認方法,以及在Visual Studio中創建新的Web Api控制器時得到的方法?返回任務的Web Api方法的缺點
這樣做有什麼缺點嗎?
public class MyController : ApiController
{
public Task<string> Boo()
{
return Task.Factory.StartNew(() =>
{
return "Boo";
});
}
}
可能值得注意的是,Task.Factory.StartNew在你想要的意義上並不是真正的異步(即釋放線程)。它只是在後臺線程上運行,所以沒有實際的好處,它只是增加了開銷。如果你總是返回任務,你可以使用Task.FromResult,這會讓你的方法完全同步。然後,你需要問自己爲什麼你打算讓它更加冗長和不太清楚。 – Frans 2014-09-11 20:34:50