示例#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");
        }
示例#2
0
        private async void Btn_avvia_Click(object sender, RoutedEventArgs e)
        {
            ct = new CancellationTokenSource();
            Semaphore           sem      = new Semaphore(1, 2);
            IProgress <int>     progress = new Progress <int>(UpdateUI);
            WorkerProgressAsync wrk      = new WorkerProgressAsync(sem, ct, 10, 1000, progress);
            await wrk.start();

            MessageBox.Show("Mi dimentico del thread secondario e non attendo il thread secondario per visualizzare questo messaggio");
        }
示例#3
0
        private async void Start_Click(object sender, RoutedEventArgs e)
        {
            cts = new CancellationTokenSource();
            //WorkerAsync wrk = new WorkerAsync(10, 1000, cts);
            IProgress <int>     progress = new Progress <int>(UpdateUI);
            WorkerProgressAsync wrk      = new WorkerProgressAsync(sem, 11, 1000, cts, progress);
            await wrk.start();


            //WorkerProgress wrk = new WorkerProgress(10,1000,cts,progress);
            //wrk.start();
            MessageBox.Show("posso farti leggere questo messaggio mentre sto anche contando");
        }
示例#4
0
        private async void btn_Avvia_Click(object sender, RoutedEventArgs e)
        {
            btn_Fine.IsEnabled = true;
            cts = new CancellationTokenSource();
            Semaphore sem = new Semaphore(2, 2);

            IProgress <int>     progress = new Progress <int>(UpdateUI);
            WorkerProgressAsync wrk      = new WorkerProgressAsync(10, 1000, cts, progress, sem);

            //WorkerProgress wrk = new WorkerProgress(10, 1000, cts, progress);
            await wrk.Start();

            MessageBox.Show("Mi dimentico del thread secondario e non lo attendo per visualizzare questo messaggio");
        }
示例#5
0
        private async void btn_Start_Click(object sender, RoutedEventArgs e)
        {
            cts = new CancellationTokenSource();

            //WorkerAsync wrk = new WorkerAsync(10, 1000, cts);

            IProgress <int>     progress = new Progress <int>(UpdateUI);
            WorkerProgressAsync wrk      = new WorkerProgressAsync(sem, 10, 1000, cts, progress);

            //WorkerProgress wrk = new WorkerProgress(10, 1000, cts, progress);

            await wrk.Start();

            MessageBox.Show("Mi dimentico del thread secondario e non attendo il thread secondario per visualizzare questo messaggio");
        }