protected override void DoWork()
{
StartProcess();
// Wait for the process to end, or cancel it
while (!process.HasExited)
{
Thread.Sleep(SleepTime); // sleep
if (CancelRequested)
{
// Not a very nice way to end a process,
// but effective.
process.Kill();
AcknowledgeCancel();
}
}
}