示例#1
0
        public void CanNotifyAboutProgress()
        {
            AutoResetEvent workerExecuted = new AutoResetEvent(false);

            DoWorkEventHandler worker = delegate(object sender, DoWorkEventArgs e)
            {
                AsyncWorker genericWorker = (AsyncWorker)sender;
                genericWorker.WorkerReportsProgress = true;

                for (int i = 0; i <= 100; i += 10)
                {
                    genericWorker.ReportProgress(i, null);
                }
            };

            int count = 0;
            ProgressChangedEventHandler progress = (sender, e) =>
            {
                count++;
                if (count == 10)
                {
                    workerExecuted.Set();
                }
            };

            AsyncWorker testee = new AsyncWorker(worker, progress, null);

            testee.RunWorkerAsync();

            workerExecuted.WaitOne(TimeOut).Should().BeTrue();
        }