コード例 #1
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            //Renderer render2 = new Renderer(jog2, tabForm2);
            Jogador jog2 = e.Argument as Jogador;

            jog2.StObserver       = tStateMessage;
            jog2.MovementObserver = tMoveMessage;

            jog2.Start();


            while (jog2.mStatus != PlayerStatus.Finalizado)
            {
                jog2.Jogar();

                if (jog2.mStatus == PlayerStatus.CaminhoEncontrado)
                {
                    string item = string.Join(",", jog2.mCaminho.Keys.ToList());
                    backgroundWorker1.ReportProgress(0, item);
                }

                //
                if (backgroundWorker1.CancellationPending)
                {
                    mStatus = MyStatusForm.Completado_Parado_Cancelado;
                    break;
                }
            }
            mStatus  = MyStatusForm.Completado_Parado_Cancelado;
            e.Result = jog2;
        }
コード例 #2
0
 private void timer1_Tick(object sender, EventArgs e)
 {
     jog.Jogar();
     tabForm.Invalidate();
     if (jog.mStatus == PlayerStatus.Finalizado)
     {
         tFim(true);
     }
 }