Example #1
0
        //Proves del metode boto per fer busquedas simultaneas
        private async void btnParaules_Click(object sender, RoutedEventArgs e)
        {
            //trencar el string en dos, retornarem un bool per saber si esta be trencat en cas si
            //anirem a un metode pasant informacio per tal de saber que el control estabe
            //sino posarem un msg box que no s'ha pugut fer la feina

            //bloquem el que es l'interfice que esta utilitzan y fa la feina pero no la resta
            parallelWork.Content  = "Treball parallel en proces";
            btnparallel.IsEnabled = false;
            btnParaules.IsEnabled = false;
            try
            {
                //obtenim el string del text box y li fem un tractament als seus camps
                var selecio    = buscarParaules.Text.ToString();
                var subSelecio = Metodes.Splitear(selecio);
                int v          = Metodes.ComprovacioPrimerCaracter(subSelecio[0]);//retorna un int per mirar si la condicio
                //esta ben posada
                //per fer la pausa
                var control = Task <string> .Factory.StartNew(() => Metodes.Pausas());

                await control;
                //Iniciem el rellotge, compte amb el start i amb el Restart
                clock.Restart();
                switch (v)
                {
                case 0:
                    control1.ItemsSource = await Metodes.mostrarPerSelecioParallel(subSelecio[1], v);

                    break;

                case 1:
                    control1.ItemsSource = await Metodes.mostrarPerSelecioParallel(subSelecio[1], v);

                    break;

                case 2:
                    control1.ItemsSource = await Metodes.mostrarPerSelecioParallel(subSelecio[1], v);

                    break;

                default:
                    MessageBox.Show("La condicio del TB no es l'adecuat per fer la feina \n recorda [country,gender,company]");
                    break;
                }

                //Finalitzem el rellotge i mostrem el temps al lavel corresponent
                clock.Stop();
                tempsAsyn.Content = "Temps[" + clock.Elapsed.TotalMilliseconds.ToString() + "]segons";
            }
            catch (Exception)
            {
                MessageBox.Show("Wops!!! alguna cosa no acaba de funcionar");
            }
            //mostrem finalitzat el treball del buto i reactivem el boto
            parallelWork.Content  = "Treball parallel finalitzat";
            btnparallel.IsEnabled = true;
            btnParaules.IsEnabled = true;
        }
Example #2
0
        //event del click per fer busquedas asincoronas de manera paralela, aquet metode depent del
        //index del combo box y de quin es el camp per el que volem fer la busqueda(pais-aquest,gendre-aques)
        //ames tenim un clock y utils per fer la interface mes digna alhora de fer la feina sigui mes coherent
        private async void click_Async(object sender, RoutedEventArgs e)
        {
            //bloquem el que es l'interfice que esta utilitzan y fa la feina pero no la resta
            parallelWork.Content  = "Treball parallel en proces";
            btnparallel.IsEnabled = false;
            try{
                var selecio = buscar.SelectedItem.ToString();
                int v       = comboOpcions.SelectedIndex;
                var control = Task <string> .Factory.StartNew(() => Metodes.Pausas());

                await control;
                // tempsSeque.Content = control.Result.ToString();
                //var selecio = buscar.SelectedItem.ToString();
                //Iniciem el rellotge, compte amb el start i amb el Restart
                clock.Restart();
                switch (v)
                {
                case 0:
                    control1.ItemsSource = await Metodes.mostrarPerSelecioParallel(selecio, v);

                    break;

                case 1:
                    control1.ItemsSource = await Metodes.mostrarPerSelecioParallel(selecio, v);

                    break;

                case 2:
                    control1.ItemsSource = await Metodes.mostrarPerSelecioParallel(selecio, v);

                    break;
                }

                //Finalitzem el rellotge i mostrem el temps al lavel corresponent
                clock.Stop();
                tempsAsyn.Content = "Temps[" + clock.Elapsed.TotalMilliseconds.ToString() + "]segons";
            }
            catch (Exception) {
                MessageBox.Show("No tens ningun camp selecionat per fer la busqueda");
            }
            //mostrem finalitzat el treball del buto i reactivem el boto
            parallelWork.Content  = "Treball parallel finalitzat";
            btnparallel.IsEnabled = true;
        }