有什么(反模式)可以阻止我像这样进行 API 调用的异步版本吗?
public IItem GetItem(int id)
{
var result = SomeLengthyServiceCall(id);
return result;
}
public async Task<IItem> GetItemAsync(int id)
{
return await Task.Run(() => this.GetItem(id));
}
有什么(反模式)可以阻止我像这样进行 API 调用的异步版本吗?
public IItem GetItem(int id)
{
var result = SomeLengthyServiceCall(id);
return result;
}
public async Task<IItem> GetItemAsync(int id)
{
return await Task.Run(() => this.GetItem(id));
}
是的,这是一种反模式;请参阅 Stephen Toub关于同步方法的异步包装器的优秀博文。
简而言之,只有自然异步的方法才应该有异步 API。