Refreshovanje

Refreshovanje

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Kad god napravim neku aplikaciju koja radi nesto duze od 10-ak
sekundi,ona se naravno ukoci, t.j. ne reaguje.Progres bar kada ga
prekrije neka druga aplikacija nece da se lepo refreshuje.
Pojavljuju se i greske kada refreshujem ceo frame(form).
Treba nesto da se petlja sa dogadjajima.
Kako da ucinim da moje aplikacije izgledaju profi???poput Nera,winzip-a...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Kako mislis da se ukoci?
Ni jednom mi se nije ukocio program koji sam napravio osim ako nehotice napravim dead loop Smile.
Ako radis u programu neke operacije kojima treba vremena da se izvrse (npr. izracunavanje faktorijela sa velikim brojevima), koristi System.Threading Namespace kako bi paralelno izvrsavao vise operacija bez cekanja.
Nisi rekao koje operacije obavlja taj tvoj prog pa zakucava posle 10sec kao i kakve greske se pojavljuju kada refreshujes formu.

A sto se tice interface-a aplikacija, moras da se potrudis da ih lepo dizajniras. (ako na to mislis).



offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Ne,ne.
Recimo pravio sam obican prg za kompresiju fajlova
koji radi po LZW algoritmu.
Kada ucitam fajl od recimo 1MB on ga kompresuje par minuta.
Za to vreme ProgressBar i labele,buttoni sve je O.K. dok
preko njega ne dodje neka druga aplikacija:totalcmd,winamp,explorer
pa zatim ponovo kliknem na moju app,tada ostaje slika tog prozora koji je bio aktivan dok se kompresija ne zavrsi.
I tako sa svakim mojim programom u C#-u.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Pa sigurno mu treba vremena da odradi taj posao.

Mozes da resis na dva nacina. Sa vec pomenutim Threadovima ili sa Application.DoEvents();
Application.DoEvents(); ce da dopusti Windowsu da on odradi neke svoje poslove. Ako DoEvents() ne radi, probaj sa Threadovima.

Ako radis sa single thread aplikacijama, za svaku operaciju ces morati da cekas da se zavrsi pa tek onda mozes da nastavis dalje.
Kada aplikacija radi svoj posao ('ukocena') desavaju se te anomalije koje si spomeuo.
Jedino mi nije jasno kako ti se to desava sa svakim programom.
Jel bukvalno sa svakim, ili samo sa onim u kojima postoje neke radnje koje bi na neki nacin zauzele CPU neko vreme?

Probaj ovo:

Namespace:

using System.Threading;


      private void button1_Click(object sender, System.EventArgs e)       {          Thread t = new Thread(new ThreadStart(ImeFunkcijeKojaRadiTuKompresiju));          t.Start();       }

E ako ovo ne pomogne, ne znam sta ce Smile.

Ko je trenutno na forumu
 

Ukupno su 1530 korisnika na forumu :: 47 registrovanih, 15 sakrivenih i 1468 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: AF-1, Andrija357, Apok, babaroga, Bane san, Ben Roj, bokisha253, bufanje, comi_pfc, darios, darkangel, DonRumataEstorski, Dorcolac, Dovla, flash12, frenki1986, gomago, goxin, kikisp, Kubovac, kunktator, kuntalo, ladro, mercedesamg, Mi lao shu, milenko crazy north, Milometer, opt1, Parker, pein, pera12345, raso7, Raso75, royst33, Sirius, slonic_tonic, sombrero, Srle993, suton, tmanda323, Trpe Grozni, vathra, vladaa012, voja64, Webb, wolf431, šumar bk2