我有一个从HttpTaskAsyncHandler继承的异步处理程序。 在处理程序中的某行,我有一个代码,它调用一个异步方法(用'async'关键字装饰),它在documentDB中执行一个命令并返回一个任务,如下例所示:https://docs.microsoft.com/en-us/azure/cosmos-db/documentdb-dotnet-application。等待HttpTaskAsyncHandler里的方法
最初我有一个普通的通用处理程序,但链接显示他们将控制器更改为异步,因此我更改了我的处理程序以从HttpTaskAsyncHandler继承。现在,我觉得在这里有太多/重复的多线程,我的处理程序现在是异步的,但也在处理程序内,我正在等待一个与documentDB api一起工作的方法(插入操作)。
我在这里做两个异步操作?一个是因为处理程序是异步的,另一个是因为documentDB方法调用是异步的?
代码在哪里?你在说什么线程和重复? 无论如何'await'不*使*异步调用。它*在继续之前等待已完成的异步操作。同样,'ProcessRequestAsync'方法不会使你的代码异步,它允许你使用'async/await'或者简单地将一个热门任务返回给框架。该处理器知道如何等待该任务 –
谢谢你,这是类似我的代码: 公共类的Class1:HttpTaskAsyncHandler { 公共覆盖异步任务ProcessRequestAsync(HttpContext的背景下) { 等待ASD(); } 私人异步任务 asd() { return await SomeMethod(); } } 它是否正常,使我在ProcessRequestAsync方法中添加'async'关键字有所不同? –
SimpleDesign
永远不要把代码放在评论中,你需要[编辑你的问题](https://stackoverflow.com/posts/45920795/edit)并把你的代码放在那里(并正确格式化) –