【发布时间】:2022-11-24 00:57:10
【问题描述】:
如果您使用 await 关键字,它是否有任何限制或是否会无限期地等待任务完成?
编辑:我的完整背景是......
前端应用程序向异步 Web API 端点发出非异步 HTTP 请求。最终,端点将等待对数据库上存储过程的调用。前端应用程序在大约 100 秒后遇到 HTTP 超时。如果过程需要 35 分钟才能完成,
- await 方法是否会等待 35 分钟让过程完成或是否有限制?
- 当 HTTP 超时在 100 秒后完成时,等待调用会发生什么情况?
- 如果继续运行,当 proc 在 35 分钟后返回响应时会发生什么?
【问题讨论】:
-
我觉得这个问题还有更多内容。你想做什么?
-
Task每个定义只是一项工作。它对时间限制或其他任何事情一无所知,只知道它已经开始并且最终会终止。 -
“等待线程是否会等待……”-- 有no await thread。您可能指的是异步方法的执行流程。
-
await将无限期等待,但一段时间后取消await并不能保证实际操作会停止。鉴于网络调用无论如何都是异步的,request to an async Web API endpoint.是什么意思?您可能不仅需要取消等待,还需要通知 API 取消其操作
标签: c# async-await