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