public override void Dispose() {
base.Dispose();
if (_process != null && !_process.HasExitedSafe()) {
_process.Kill();
_process = null;
}
DisposeHelper.Dispose(ref _distanceChange);
DisposeHelper.Dispose(ref _logActivateChange);
}