Async Void 和 ASP.Net:了解异常
在 ASP.Net 应用程序中使用 async void 方法时,可能会遇到异常声明:“异步模块或处理程序已完成,而异步操作仍处于挂起状态。”出现此异常的原因是 async void 在调用时增加未完成操作的计数,并在完成时减少它。
相反,async Task 方法返回一个 Task 对象,允许 ASP.Net 框架跟踪异步操作并处理优雅地完成。
为什么任务有帮助
通过返回任务,您可以启用框架来:
异步 Void 和即发即弃
虽然 async void 方法可能看起来实现了即发即弃方法,但这是不准确的在 ASP.Net 上下文中。框架主动跟踪这些方法,如果它们过早完成,则会引发异常。
要实现真正的即发即弃行为,请使用异步任务方法并忽略返回的任务。然而,由于潜在的问题,通常不鼓励从 ASP.Net 中的请求过早返回。
附加说明
以上是为什么在 ASP.NET 中使用 `async void` 通常会导致'异步模块或处理程序已完成,而异步操作仍处于挂起状态”?的详细内容。更多信息请关注PHP中文网其他相关文章!