c# – 如何正确实现TAP方法?

前端之家收集整理的这篇文章主要介绍了c# – 如何正确实现TAP方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想提供一个基于任务的异步模式样式的方法.在等待该方法时,我提供这两种方法之间找不到任何区别:
// GetStats is a delegate for a void method in this example
public Task GetStatsAsync()
{
    return TaskEx.Run(GetStats);
}

public async Task GetStatsAsync()
{
    return await TaskEx.Run(GetStats);
}

// Usage:
await GetStatsAsync();
// Difference?

上面的方法似乎比较低的方法有更少的开销.当看MSDN博客时,我注意到他们似乎使用较低的方法. (例如this article)

为什么?有什么区别?他们似乎都在工作.

解决方法

那些在逻辑上是相同的,但是第二个具有更多的开销,因此不推荐.

你可能会找到我的async intro helpful以及task based asynchronous pattern document.

有关异步开销的更多信息,我建议您使用Zen of Async by Stephen Toub.

你可能还想读“Should I Expose Asynchronous Wrappers for Synchronous Methods?”简而言之,答案是“不”.

猜你在找的C#相关文章