[ jmix23 @ 13.10.2009. 09:49 ] @
Pozdrav narode,

napravio sam jednu desktop aplikaciju koja za svakog kupca proracunava, na osnovu unesenih podataka, kreditni limit. E sad, sve je to lepo radilo, ali kako je broj kupaca anormno rastao, od mene su trazili da automatizujem taj proces. I to sam uspeo da uradim, tako sto sam za svakog kupca automatski ucitavao podatke (neki se povlace iz baze podataka, neki iz excel-a) i nakon toga odredio da se dugme samo pokrene i odradi sve sto su oni trebali rucno. Elem, nakon nekoliko kupaca (zadnji put je bilo na 120.kupcu) program jednostavno stane i ne nastavlja dalje, ne javlja nikakvu poruku, a sve do tada odradi kako treba....tako da ne znam sta bi moglo da pravi problem !?!

E da, treba napomenuti da ne zablokira uvek na istom kupcu...nekad je to 182., nekad 120. kupac
[ Sapphire @ 13.10.2009. 11:41 ] @
Razlog mora postojati... Jel' se program zamrzne? Koristiš li multithreading, da li negdje u UI threadu imaš wait na neki drugi thread, u kojem si postavio da se exceptioni odbacuju ili nešto?

Mislim na nešto ovako:

Code:

try
{
   // neki zadatak
}
catch(Exception) {}  // prislilno utišavanje exception-a


Slično može biti ako "utišavaš" exceptione na globalnom app nivou, registovanjem na Application.ThreadException.

Uglavnom, te "random" greške ili upućuju na multithreading, ili da imaš problem sa programiranjem tako da neki slijed event-a pokreće bug: recimo unos nakon brisanja nečeka u bazi, i sl. Provjeri i probleme oko Ident kolona u bazi (pogotovo ako koristiš DataSet pristup)...

(ovo su samo neke ideje, razloga može biti milion, a neki od njih zasigurno jeste... )
[ jmix23 @ 13.10.2009. 12:40 ] @
Citat:
Sapphire: Razlog mora postojati... Jel' se program zamrzne? Koristiš li multithreading, da li negdje u UI threadu imaš wait na neki drugi thread, u kojem si postavio da se exceptioni odbacuju ili nešto?

Mislim na nešto ovako:

Code:

try
{
   // neki zadatak
}
catch(Exception) {}  // prislilno utišavanje exception-a


Slično može biti ako "utišavaš" exceptione na globalnom app nivou, registovanjem na Application.ThreadException.

Uglavnom, te "random" greške ili upućuju na multithreading, ili da imaš problem sa programiranjem tako da neki slijed event-a pokreće bug: recimo unos nakon brisanja nečeka u bazi, i sl. Provjeri i probleme oko Ident kolona u bazi (pogotovo ako koristiš DataSet pristup)...

(ovo su samo neke ideje, razloga može biti milion, a neki od njih zasigurno jeste... )


Nisam pokusavao sa ovim sto si mi rekao al isam uspeo da resim problem...naime, samu aplikaciju sam automatizovao tako sto sam automatizovao svaki event koji je korisnik trebalo da uradi...od unosa sifre kupca, ucitavanja podataka za tog kupca, i slanje rezultata u jedan txt fajl (proracun kred limita je radjen na osnovu unesenih podataka) i za svakog kupca mi se otvarao po jedan window sto naravno nije bilo dobro jer je zauzimalo dosta memorije...resenje je dosta jednostavno, samo sam zatvorao prozore za svakog kupca i sad je ok...ako nekome padne neka bolja ideja na pamet, ili pak brzi nacin, svakako bi mi dobrodosao...
sapphire HVALA !!!
[ Shadowed @ 13.10.2009. 14:12 ] @
Pa, bolji nacin je svakako da odvojis izvrsavanje od GUI-a tj. da ti to sto radis bude u klasama/funkcijama, pa ih onda mozes pozivati bilo iz event-a, bilo iz tog dela za automatizaciju. Tako ne moras da pokreces evente i simuliras sve ono sto radi korisnik...
[ Sapphire @ 13.10.2009. 17:06 ] @
Sve što ti je @Shadowed rekao, te ujedno da malo ramotriš Design Pattern-e (layering, GoF patterns, Enterprise patterns), pogotovo Command pattern koji je super za automatizaciju korisničkih radnji (iako je za njegovu primjenu potrebna pravilno dizajnirana aplikacija). Dosta je vremena potrebno da se ovo sve savlada, ali jednom kada skontaš kako, to će biti "neka bolja ideja ... ili pak brzi nacin"...
[ jmix23 @ 14.10.2009. 06:58 ] @
Citat:
Sapphire: Sve što ti je @Shadowed rekao, te ujedno da malo ramotriš Design Pattern-e (layering, GoF patterns, Enterprise patterns), pogotovo Command pattern koji je super za automatizaciju korisničkih radnji (iako je za njegovu primjenu potrebna pravilno dizajnirana aplikacija). Dosta je vremena potrebno da se ovo sve savlada, ali jednom kada skontaš kako, to će biti "neka bolja ideja ... ili pak brzi nacin"...


Ljudi, prvo jedno veliko hvala na odvojenom vremenu... nisam bas upoznat sa Pattern-ima jer sam relativno nov u .Net(C#) okruzenju, ali cu googlati malo da proucim te stvari, osim ako nemate neku preporuku od tutoriala(knjiga) :) ... HVALA jos jednom !!!

p.s. Upravo sam video link za design pattern sa primjerima ;) !!! HVALA
[ Shadowed @ 14.10.2009. 07:25 ] @
Zapravo, to nema mnogo veze sa C#-om, niti bilo kojim jezikom. To je vrsta znanja koju mozes primeniti u cemu god programirao :)
[ jmix23 @ 14.10.2009. 07:32 ] @
Upravo sam to skontao citajuci blog :) ... u svakom slulcaju, hvala na usmeravanju ka pravim stvarima :)
[ sallle @ 14.10.2009. 11:26 ] @
idi kroz debuger i vidi gde stane.

vidi i u taskmanageru sta ti se desava. moguce da u programu pravis nove instance excela, i ne zatvaras ih....

[ MarkoBalkan @ 15.10.2009. 18:44 ] @
taj izračun stavi na Thred (nit).