Comment attendre que BackgroundWorker se termine, puis quittez l'application de la console

J'ai écrit un exemple de l'application de la console pour tester backgroundworker à l'aide de l'un des exemples posté ici en Stackoverflow. J'ai un backgroundworker qui commencent avec la méthode main, mais sa fin au milieu de l'opération si j'appuie sur entrer parce que j'ai écrit une console.readkey dans la méthode main. Mais je veux attendre jusqu'à ce que le composant backgroundworker a fini de faire le travail puis quittez l'application. C'est mon code.

class Program
{
    private static BackgroundWorker worker = new BackgroundWorker();
    private event EventHandler BackgroundWorkFinished;

    static void Main(string[] args)
    {
        worker.DoWork += worker_DoWork;
        worker.RunWorkerCompleted += worker_RunWorkerCompleted;
        worker.ProgressChanged += worker_ProgressChanged;
        worker.WorkerReportsProgress = true;
        worker.WorkerSupportsCancellation = true;

        Console.WriteLine("Starting Application...");

        worker.RunWorkerAsync();
        Console.ReadKey();
    }

    static void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        Console.WriteLine(e.ProgressPercentage.ToString());
    }

    static void worker_DoWork(object sender, DoWorkEventArgs e)
    {
        Console.WriteLine("Starting to do some work now...");
        int i;
        for (i = 1; i < 10; i++)
        {
            Thread.Sleep(1000);
            worker.ReportProgress(Convert.ToInt32((100.0 * i) / 10));
        }

        e.Result = i;
    }

    static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        Console.WriteLine("Value Of i = " + e.Result.ToString());
        Console.WriteLine("Done now...");
    }
}

source d'informationauteur Soham Dasgupta