diff --git a/src/App/NetDaemon.App/Common/ApplicationContexts/ApplicationContext.cs b/src/App/NetDaemon.App/Common/ApplicationContexts/ApplicationContext.cs index 72ddbabfd..f2104310f 100644 --- a/src/App/NetDaemon.App/Common/ApplicationContexts/ApplicationContext.cs +++ b/src/App/NetDaemon.App/Common/ApplicationContexts/ApplicationContext.cs @@ -12,6 +12,7 @@ namespace NetDaemon.Common public abstract class ApplicationContext : IAsyncDisposable, IApplicationMetadata, IApplicationContext { private readonly IServiceScope? _serviceScope; + private bool _disposed; private Action? _configProvider; @@ -152,12 +153,16 @@ public async Task InitializeAsync() /// public async ValueTask DisposeAsync() { + if (_disposed) return; + + _disposed = true; + if (ApplicationInstance is IAsyncDisposable asyncDisposable) { await asyncDisposable.DisposeAsync().ConfigureAwait(false); } - if (ApplicationInstance is IDisposable disposable) + else if (ApplicationInstance is IDisposable disposable) { disposable.Dispose(); }