示例#1
0
        private async void Btn_start_Click(object sender, RoutedEventArgs e)
        {
            cts = new CancellationTokenSource();

            //Fire&Forgtet
            //Worker wrkr = new Worker(10,1000,cts );
            //wrkr.CountDown();

            //ProgressUpdate
            //IProgress<int> p1 = new Progress<int>(UpdateUI);
            //WorkerProgress wrkrp = new WorkerProgress(10, 1000, cts, p1);
            //wrkrp.CountDown();

            //Async
            //WorkerAsync wrkra = new WorkerAsync(10, 1000, cts);
            //await wrkra.CountDown();

            //Async Progress
            IProgress <int>     p2     = new Progress <int>(UpdateUI);
            Semaphore           s      = new Semaphore(1, 1);
            WorkerProgressAsync wrkrpa = new WorkerProgressAsync(10, 1000, cts, p2, s);
            await wrkrpa.CountDown();

            MessageBox.Show("hey yo wassup, i wait the other thread");
        }