如何解决BackgroundService.StartAsync,是否应在启动或阻止期间完成?
我不知道我是否会错过这个难题,但是就我通常使用服务的情况而言,对List
的任何调用都应该总是返回,以便您知道您的服务已启动。
我正在学习Start
:
Background tasks with hosted services in ASP.NET Core
Implement background tasks in microservices with IHostedService and the BackgroundService class
在这两个示例中,它们都使用BackgroundService
来实现ExecuteAsync
(由{{1} }})只会在取消后(例如应用程序关闭时)返回。
StartAsync
这与我对服务的了解相矛盾,因为您如何分辨服务已成功启动还是挂起?
我真的很感谢在此方面的一些澄清,因为我似乎无法完全了解正在发生的事情,而且我似乎也找不到任何针对此的进一步信息。
编辑:添加了从while loop
到ExecuteAsync
的呼叫以进行说明:
StartAsync
解决方法
通过 async
的魔力,尽管 ExecuteAsync
看起来是一个无限循环,但它实际上会向调用者返回一个 Task
。 Delay 上的 await
允许控制流离开 ExecuteAsync
函数,循环的下一次迭代仅在 Task
解析后运行。
如果不习惯,很容易错过。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。