private void HandleRunning(DebugConnector debugConnector, Base host) { if (debugConnector == null) { throw new ArgumentNullException("debugConnector"); } if (host == null) { throw new ArgumentNullException("host"); } mKernelRunning = true; host.Start(); try { var xStartTime = DateTime.Now; mKernelResultSet = false; Interlocked.Exchange(ref mSucceededAssertions, 0); while (mKernelRunning) { Thread.Sleep(50); if (Math.Abs(DateTime.Now.Subtract(xStartTime).TotalSeconds) > AllowedSecondsInKernel) { OutputHandler.SetKernelTestResult(false, "Timeout exceeded"); mKernelResultSet = true; break; } } if (!mKernelResultSet) { OutputHandler.SetKernelTestResult(true, null); } OutputHandler.SetKernelSucceededAssertionsCount(mSucceededAssertions); } finally { Console.WriteLine("Stopping now"); host.Stop(); debugConnector.Dispose(); Thread.Sleep(50); } }