public void DoesNotThrowWhenDisposingTwice()
        {
            var pw = new GameProcessWatcher(_gif, new NativeMethodsMock());

#pragma warning disable IDISP016, IDISP017
            pw.Dispose();
            pw.Dispose();
#pragma warning restore IDISP016, IDISP017
        }
        public void Dispose()
        {
            if (_disposed)
            {
                return;
            }

            Stop();

            _journalWatcher.Dispose();
            _statusWatcher.Dispose();
            _bindingsWatcher.Dispose();
            _graphicsConfig.Dispose();
            _modifierKeysWatcher.Dispose();
            _gameProcessWatcher.Dispose();

            _disposed = true;
        }