osy*_*ets 19 c# migration backgroundworker .net-core
从旧版 .NET Framework 迁移,我需要创建一个长时间的后台进程工作者。
查看文档我发现了一个BackgroundService类,用于这种目的。但是我偶然发现了两种相同的(就我的观点而言)方法ExecuteAsync()和StartAsync()
有人可以向我解释它们之间的主要区别吗?是不是某种隔离原则——我们有一种将数据设置为“构造函数”的方法,我们有一种实际做事的方法?
Jul*_*ian 27
的默认行为BackgroundService是 StartAsync调用ExecuteAsync,请参阅代码。这是一个默认情况下,StartAsync是virtual这样,你可以将其覆盖。
请注意,只有StartAsync是public和(和)。所以从外面叫ExecuteAsync
protectedabstractStartAsync
如果创建 的子类BackgroundService,则必须实现ExecuteAsync(因为它是abstract)。那应该做你的工作。您也可以覆盖StartAsync(因为它是virtual),但这仅在特殊情况下才需要。
您可以通过实施来创建服务IHostedService。该接口具有StartAsync和StopAsync。
BackgroundService是 的(基础)实现IHostedService,可用于长时间运行的任务。这一个定义了抽象ExecuteAsync。
BackgroundService,实现ExecuteAsyncIHostedService,实施StartAsync和StopAsync| 归档时间: |
|
| 查看次数: |
6768 次 |
| 最近记录: |