Poziv threada vlastitom fumkcijom i rezultat obrade
19.11.2012. u 12:42 · pre 169 meseci
#1
Hej!
Radio sam do sada dosta stvari sa threadovima. Nije problem sinhronizacija, znam o critical sekcijama, o suspendu, resume, execute i sve ostalo...
Mene interesira slijedeće:
Imam klasu koja je nešto obrađuje i ujedno je ta klasa i thread. Tu klasu želim nakon što je konstruiram želim pozvati s nekoliko funkcija/metoda koje imaju različite parametre i poslovna pravila, a na kraju obrade
tj. na terminate threada trebaju vratiti rezultat nekog određenog tipa (record).
Postoji li još neka ideja osim korištenja overloadanih konstruktora?
Naime, ako dodam kreiram thread u suspend modu, i nakon kreiranja mu zadam neku obradu metodom obrade (koja zapravo popuni lokalna polja i posloži proces obrade) nakon resume ne ode u execute i odradi ga nego odmah vrati rezultat (opet presliku lokalnih polja u threadu) i tek potom zavrti execute.
Znači, meni se thread treba ponašati na sitem:
Ullazni podaci : Tulaznipodaci;
Mojrezultat : TMojrezultat;
MojThread := TMojthread.Create (neki parametri);
Mojrezultat := GetMojRezultat ( ulaznipodaci);
if assigned (MojThread) then FreeandNil (MojThread); ,doduše ne bukvalno ovako.
A thread bi se trebao konstruirati s nekiparametri i ostatu u suspendu, potom bi mu podatke napunio s ulazni podaci, a on bi ušao u execute, na na terminate vratio glavnom procesu vrijednost Mojrezultat.
Osim GetMojrezultat postoji nekoliko metoda za različite tipove i s različitim tipovima vraćenog podatka.
Ima li tko ideju? Ako ne ide lakše rastavit ću sve na zasebne klase, no iz nekih razloga bolje bi mi odgovaralo da se sve vrti kao jedna klasa.
Radio sam do sada dosta stvari sa threadovima. Nije problem sinhronizacija, znam o critical sekcijama, o suspendu, resume, execute i sve ostalo...
Mene interesira slijedeće:
Imam klasu koja je nešto obrađuje i ujedno je ta klasa i thread. Tu klasu želim nakon što je konstruiram želim pozvati s nekoliko funkcija/metoda koje imaju različite parametre i poslovna pravila, a na kraju obrade
tj. na terminate threada trebaju vratiti rezultat nekog određenog tipa (record).
Postoji li još neka ideja osim korištenja overloadanih konstruktora?
Naime, ako dodam kreiram thread u suspend modu, i nakon kreiranja mu zadam neku obradu metodom obrade (koja zapravo popuni lokalna polja i posloži proces obrade) nakon resume ne ode u execute i odradi ga nego odmah vrati rezultat (opet presliku lokalnih polja u threadu) i tek potom zavrti execute.
Znači, meni se thread treba ponašati na sitem:
Ullazni podaci : Tulaznipodaci;
Mojrezultat : TMojrezultat;
MojThread := TMojthread.Create (neki parametri);
Mojrezultat := GetMojRezultat ( ulaznipodaci);
if assigned (MojThread) then FreeandNil (MojThread); ,doduše ne bukvalno ovako.
A thread bi se trebao konstruirati s nekiparametri i ostatu u suspendu, potom bi mu podatke napunio s ulazni podaci, a on bi ušao u execute, na na terminate vratio glavnom procesu vrijednost Mojrezultat.
Osim GetMojrezultat postoji nekoliko metoda za različite tipove i s različitim tipovima vraćenog podatka.
Ima li tko ideju? Ako ne ide lakše rastavit ću sve na zasebne klase, no iz nekih razloga bolje bi mi odgovaralo da se sve vrti kao jedna klasa.
Potpis
God is real unless is declared as integer.