private void cancelOperation(ExternalProcess.AsyncTaskDescriptor descriptor) { if (descriptor == null) { return; } descriptor.Cancelled = true; try { ExternalProcess.Cancel(descriptor.Process); } catch (InvalidOperationException) { // process already exited } }