예제 #1
0
 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     //quando ho finito il dowork
     btn_rivincita.Show();
     var(non_soppresso, auto) = (ValueTuple <bool, Automobile>)e.Result;
     //se il processo non è stato cancellato
     if (non_soppresso)
     {
         //e se l'auto ha vinto
         if (auto.Vittoria)
         {
             //stampo che ha vinto
             MessageBox.Show(auto.Nome + " HA VINTO");
         }
         btn_start.Hide();
         btn_stop.Hide();
     }
     else
     {
         //se è stato cancellato riporto le auto a 0
         auto_rossa.Posizione = 0;
         auto_nera.Posizione  = 0;
         auto_nera.Muovi();
         auto_rossa.Muovi();
     }
 }
예제 #2
0
        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            Automobile auto = (Automobile)e.UserState;

            //finché viene chiamato il progress changed (ovvero finché si è nel while)
            if (e.ProgressPercentage != -1)
            {
                //muovo l'auto
                auto.Muovi();
            }
        }