Почему не срабатывает RunWorkerCompleted?
От: senglory  
Дата: 04.08.09 16:30
Оценка:
using System;
using System.ComponentModel ;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Reflection;

using Retriever.Interface;

namespace Retriever
{
    class Program
    {
        static IRetriever cls;

        static void Main(string[] args)
        {
            cls = new RetrieverMainClass();
            BackgroundWorker bw = new BackgroundWorker();
            bw.WorkerSupportsCancellation = true;
            

            bw.DoWork += new DoWorkEventHandler(bw_DoWork);
            bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
            bw.RunWorkerAsync();
            Console.WriteLine("Press ENTER to exit...");
            Console.ReadLine();
            bw.CancelAsync();
            Thread.Sleep(5000);
        }

        static void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Cancelled )
                cls.Suspend ();
        }

        static void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            foreach (string s in cls.GetURLS())
                Console.WriteLine(s);
        }
    }
}


Если нажать ENTER, то bw_RunWorkerCompleted не вызовется. Почему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.