小编Yur*_*ger的帖子

Webapi2 - 一项任务完成后从控制器操作返回,但继续进一步的异步处理

我有一个关于 Webapi2 的问题

我的应用程序是完整的async/await,但我想优化最后一部分。我很难找到,那么有什么办法可以做到以下几点?

webapi2 控制器的示例:

 private async Task<Foo> Barfoo(Bar foo)
 {
     //some async function
 }     

 public async Task<IHttpActionResult> Foo(Bar bar)
 {
     List<Task> tasks=new List<Task>();
     var actualresult=Barfoo(bar.Bar);
     tasks.Add(actualresult);
     foreach(var foobar in bar.Foo)
     {
         //some stuff which fills tasks
     }
     await Task.WhenAll(tasks);
     return Ok(actualresult.Result);
 }
Run Code Online (Sandbox Code Playgroud)

客户端只需要一个函数,所以我想要的更像是这样:

 private async Task<Foo> Barfoo(Bar foo)
 {
   //some async function  
 }     

 public async Task<IHttpActionResult> Foo(Bar bar)
 {
     List<Task> tasks=new List<Task>();
     var actualresult=Barfoo(bar.Bar);
     return Ok(actualresult.Result);

     foreach(var foobar in bar.Foo)
     {
         //some stuff which fills tasks …
Run Code Online (Sandbox Code Playgroud)

c# optimization multithreading asynchronous asp.net-web-api

5
推荐指数
2
解决办法
4279
查看次数