public void Close() { try { Monitor.Enter(_ownLock); _collector.Error -= ErrorMessageHandler; _collector.Info -= InfoMessageHandler; _collector.Close(); _logger?.InfoLog("Closed.", CLASS_NAME); } catch (Exception ex) { string message = _logger?.ErrorLog($"Exception occured: {ex.Message}", CLASS_NAME); //ErrorMessageHandler(this, message); } finally { IsInitialized = false; Monitor.Exit(_ownLock); } }