public void Dispose() { // do not dispose _sharedCancellationTokenSource cause it’s shared DisposeHelper.Dispose(ref _keyboard); AcSharedMemory.Instance.Start -= OnStart; } }