我有一个班级注册为独生子女。在这个类的构造函数中,我订阅了IOptonsMonitor。变更后:
class Test
{
public Test(IOptionsMonitor<MyOptions> myOptionsMonitor)
{
myOptionsMonitor.OnChange(async options => await SomeWork());
}
public async Task SomeWork()
{
await Task.Delay(TimeSpan.FromSeconds(30));
}
}
在这种情况下,一些工作任务实际上会“启动并忘记”,这可能是错误的。另一种方法是同步运行一些工作:
myOptionsMonitor.OnChange(options => SomeWork().GetAwaiter().GetResult());
但在这种情况下,OnChange将被阻止执行一段时间。