» »

c# timer problem

c# timer problem

amacar ::

Ustvarjen imam timer, ki bi moral prekiniti while loop. Problem se pojavi, ker se tick nikoli ne zgodi. Vseskupaj je v onmousebutton. Če postavim breakpoint v timer_tick funkcijo, se ta nikoli ne izvede. Če prestavim timer1.start() recimo v onload funkcijo, pa deluje ok. Lahko mi svetujete tudi kakšno drugo idejo, kako prekiniti funkcijo, ko se čas izteče (ker je glavni namen prekiniti funkcijo alfabeta).

Koda:
private void pictureBox3_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.X > 599)
                return;
            SolidBrush obroba = new SolidBrush(Color.Yellow);
            Pen pen = new Pen(obroba);
            pen.Width = 3;
            int stolpec = e.X / 100;
            int vrstica = e.Y / 100;
            if (na_vrsti == 1)
                klik_na_polje(stolpec, vrstica);
            if (na_vrsti == 2)
            {
                    izvedi_potezo1 = new tocka(-1, -1, -1, -1);
                    izvedi_potezo = new tocka(-1, -1, -1, -1);
                    List<tocka> poglabljanje = new List<tocka>();
                    int stevec_globine = 1;
                    timer = false;
                    cas_vsota = 0;
                    timer1.Start();
                    while (timer == false)
                    {
                        globina123 = stevec_globine;
                        int bla = alfabeta(matrika, stevec_globine, -500, 500, 2, zetoni1, zetoni2);
                        if (timer == true)
                            break;
                        poglabljanje.Add(izvedi_potezo);
                        poglabljanje.Add(izvedi_potezo1);
                        stevec_globine++;
                    }
                    timer1.Stop();
   //timer_tick funkcija
   private void timer1_Tick(object sender, EventArgs e)
        {
            MessageBox.Show("delam");
            cas_vsota = cas_vsota + 100;
            if (cas_vsota >= int.Parse(textBox1.Text))
                timer = true;
        }

  • spremenil: amacar ()

KernelPanic ::

Zakaj pa intenzivne obdelave ne premaknes v BackgroundWorker class, tako bos pridobil na odzivnost main (GUI) threada: http://www.dotnetperls.com/backgroundwo...

Lp,
M.

amacar ::

Hvala za nasvet, ampak to itak ni "zahtevna" aplikacija, temveč ena enostavna/brezvezna igra za fax, in s takšnim namenom sem se jo tudi odločil narediti (po liniji najmanjšega odpora). Me pa zanima bolj, zakaj timer ne bi delal...

KernelPanic ::

Nima to veze, ce hodis na fax, naredi stvar tako, kot da bi delal za sluzbo in nic slabse. Res je, da je vec dela (ker moras osvojiti BackgroundWorker), ampak potrudi se, ne delaj faksa samo zato, da ga delas, ampak da bos kaj uporabnega iz sole izvlekel ... Falil si ze v samem designu, taksne stvari se ponavadi prestavijo na svoj thread in nato ti thread asinhrono javi, kdaj je koncal.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] ukaz radirka

Oddelek: Programiranje
91113 (906) japol
»

[c#] picturebox, slika na sliko

Oddelek: Programiranje
151085 (895) japol
»

[c#]4 v vrsto - padanje krogov

Oddelek: Programiranje
81989 (1821) VASkO
»

[c#] enostavna Igrca -> poraba procesorja 95%

Oddelek: Programiranje
192157 (1521) elKaktus
»

[Visual C#] posodabljanje polja

Oddelek: Programiranje
111646 (1466) iggy1

Več podobnih tem