大佬教程收集整理的这篇文章主要介绍了c# – 将Task.WhenAll用于多个异步和伪异步方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public async Task<ActionResult> Foo() { var dataATask = _dataARepository.GetDataAsync(); var dataBTask = Task.Run(_dataBRepository.GetData()); await Task.WhenAll(dataATask,dataBTask); var viewmodel = new viewmodel(dataATask.Result,dataBTask.Result); return View(viewmodel); }
在Task.Run中包装同步方法不是最佳实践(参见Should I expose asynchronous wrappers for synchronous methods?).它可能对你有用,只要为这种行为交易额外的线程是可以接受的.
如果您只剩下一个同步操作,则可以保持同步,并在同步步骤结束时等待剩下的额外线程:
var dataATask = _dataARepository.GetDataAsync(); var dataBTaskResult = _dataBRepository.GetData(); await Task.WhenAll(dataATask); // or just await dataATask if you have only one. var viewmodel = new viewmodel(dataATask.Result,dataBTaskResult);
以上是大佬教程为你收集整理的c# – 将Task.WhenAll用于多个异步和伪异步方法全部内容,希望文章能够帮你解决c# – 将Task.WhenAll用于多个异步和伪异步方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。