using System.ComponentModel;
namespace ConsoleApplication1
private static readonly BackgroundWorker Worker = new BackgroundWorker {WorkerSupportsCancellation = true, WorkerReportsProgress = true};
private static readonly AutoResetEvent ResetEvent = new AutoResetEvent(false);
public static void Main(string[] args)
Worker.DoWork += OnDoWork;
Worker.RunWorkerCompleted += OnRunWorkerCompleted;
Console.WriteLine("Reset Event Set");
private static void OnDoWork(object sender, DoWorkEventArgs e)
Console.WriteLine("Starting");
Console.WriteLine("Checking for cancellation");
if (Worker.CancellationPending)
Console.WriteLine("Cancelling");
private static void OnRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
Console.WriteLine("Completed. Cancelled: {0}", e.Cancelled);