public ProcessInformation CreateProcess(Func<ProcessInformation> processCreator) {
   if (_debuggerThread != null) {
     throw new InvalidOperationException("Debugger already attached to a process.");
   }
   _debuggerThread = new DebuggerThread();
   return _debuggerThread.Start(processCreator);
 }
 public void Dispose() {
   if (_debuggerThread != null) {
     _debuggerThread.Dispose();
     _debuggerThread = null;
   }
 }