Forum » Programiranje » 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:
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.
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] ukaz radirkaOddelek: Programiranje | 1113 (906) | japol |
» | [c#] picturebox, slika na slikoOddelek: Programiranje | 1085 (895) | japol |
» | [c#]4 v vrsto - padanje krogovOddelek: Programiranje | 1989 (1821) | VASkO |
» | [c#] enostavna Igrca -> poraba procesorja 95%Oddelek: Programiranje | 2157 (1521) | elKaktus |
» | [Visual C#] posodabljanje poljaOddelek: Programiranje | 1646 (1466) | iggy1 |