1 回答

TA貢獻1812條經驗 獲得超5個贊
這個鏈接對我幫助很大。
IServiceScopeFactory在內部注入HostedService可以提供解決問題的實例。不確定這是否是更好的方法。如果你們知道更好的方法,請發表評論:)
這是代碼。
托管服務實現:
public class TestService : HostedService
{
private readonly IServiceScopeFactory _serviceScopeFactory;
public TestService(IServiceScopeFactory serviceScopeFactory)
{
_serviceScopeFactory = serviceScopeFactory;
}
protected override async Task ExecuteAsync(CancellationToken cancellationToken)
{
using (var scope = _serviceScopeFactory.CreateScope())
{
IMyService myScopedService = scope.ServiceProvider.GetRequiredService<IMyService>();
while (!cancellationToken.IsCancellationRequested)
{
await myScopedService.Execute();
await Task.Delay(TimeSpan.FromSeconds(5), cancellationToken);
}
}
}
}
- 1 回答
- 0 關注
- 187 瀏覽
添加回答
舉報