c# – 如何正确实现TAP方法?
发布时间:2020-12-15 04:11:22 所属栏目:百科 来源:网络整理
导读:我想提供一个基于任务的异步模式样式的方法.在等待该方法时,我提供这两种方法之间找不到任何区别: // GetStats is a delegate for a void method in this examplepublic Task GetStatsAsync(){ return TaskEx.Run(GetStats);}public async Task GetStatsAsy
我想提供一个基于任务的异步模式样式的方法.在等待该方法时,我提供这两种方法之间找不到任何区别:
// 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) 为什么?有什么区别?他们似乎都在工作. 解决方法
那些在逻辑上是相同的,但是第二个具有更多的开销,因此不推荐.
你可能会找到我的 有关异步开销的更多信息,我建议您使用Zen of Async by Stephen Toub. 你可能还想读“Should I Expose Asynchronous Wrappers for Synchronous Methods?”简而言之,答案是“不”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |