public static void Main(string[] args)
{
BackgroundWorker bgWorker = new BackgroundWorker();
bgWorker.DoWork += BgWorker_DoWork;
bgWorker.ProgressChanged += BgWorker_ProgressChanged;
bgWorker.WorkerReportsProgress = true;
bgWorker.WorkerSupportsCancellation = true;
bgWorker.RunWorkerCompleted += BgWorker_RunWorkerCompleted;
bgWorker.ReportProgress(1); /* Use the overload for userState */
bgWorker.RunWorkerAsync();
Console.WriteLine("Press ESC key to stop");
ConsoleKey key = Console.ReadKey().Key;
if (key == ConsoleKey.Escape)
{
//Add logic to check key is ESC key, and send a cancelation request to your worker.
}
}
private static void BgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
/* Your task to create your patient was completed */
}
private static void BgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
/* Checl your progress here e.ProgressPercentage; */
}
private static void BgWorker_DoWork(object sender, DoWorkEventArgs e)
{
/* Build up your customer here */
Console.WriteLine("Add a customer name :");
Console.ReadLine();
}