Agn*_*cle 0 c# rest iis-express async-await
我正在构建一个RESTful web api,它将启动几个任务,等待它们完成然后返回一些数据.但我一直有问题,等待时似乎挂了.我把它缩小到最基本的范围:
[Authorize]
public class ValuesController : ApiController
{
    public IEnumerable<string> Get([FromUri]bool enableWait)
    {
        Task t = Silly(enableWait);
        t.Wait();
        return new string[] { "value1", "value2" };
    }
    private async Task Silly(bool delay)
    {
        if (delay)
            await Task.Delay(1);
    }
}
Run Code Online (Sandbox Code Playgroud)
如果我传递false,则返回没有任何问题.如果我返回true,它应该等待1毫秒(加上Task/Asnyc开销)然后返回.然而它只是挂在那里.
我在VS 2017附带的IIS Express上运行它.任何线索?
当实现async/await你需要确保你实现它所有的方式通过.您的控制器操作需要async,并且它需要await您的Silly()方法:
public async Task<IEnumerable<string>> Get()
{
    return await Silly();
}
Run Code Online (Sandbox Code Playgroud)
您还必须确保您的Silly()方法调用所需的正确异步方法,确保您正在使用await它们.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           239 次  |  
        
|   最近记录:  |