/// <summary> /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// </summary> protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { _pendingCallbacks.Dispose(); if (_pluginContext != null) { _pluginContext.Dispose(); } lock (_contexts) { foreach (var context in _contexts.Values) { context.Dispose(); } _contexts.Clear(); } } }