예제 #1
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            int n = Int32.Parse(inputLabel.Text);
            int tmp;

            if ((n - 1) % 2 == 0)
            {
                tmp = n - 2;
            }
            else
            {
                tmp = n - 1;
            }
            for (int i = tmp; i >= 2; i -= 2)
            {
                if (worker.CancellationPending == true)
                {
                    e.Cancel = true;
                    break;
                }
                if (Prim.IsPrim1(i))
                {
                    worker.ReportProgress(i);
                    break;
                }

                Thread.Sleep(200);
                worker.ReportProgress(i);
            }
        }