Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Thread & klasa        

[es] :: Pascal / Delphi / Kylix :: Thread & klasa        

[ Pregleda: 2616 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Thread & klasa        21.12.2005. u 15:30 - pre 222 meseci
Pravim IRC komponentu. E sad, ja sam isplanirao da kreiram jedan thread koji ce primati podatke sa servera preko recv() komande. Medjutim, koliko sam cuo i procitao, thread se ne moze kreirati iz neke klase, vec on mora biti van nje. Kako da kreiram thread koji ce primati podatke, a ujedno ce i moci da ih salje na dalje procesiranje u recimo funkciju TReiIRC.ProcessIRCMessage() ?
Komponenta treba da radi u konzolnom modu, znaci zaboravite na prozore itd..

hvala, poz
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Thread & klasa 21.12.2005. u 16:42 - pre 222 meseci
Thread se moze kreirati iz klase (kada imas formu i na OnClick nekog dugmeta kreiras thread to kreiranje se vrsi u TForm1 klasi). Jedino sto ne moze je da procedura klase bude procedura koju ce thread pozivati, ali taj problem je rezen TThread klasom tako da slobodno mozes da koristis Thread Wizzard i da kreiras svoju klasu koja nasladjuje TThread... samo promenis Execute proceduru (u njoj napisi kod za thread) i to je to. Cak ces imati i lokalne promenljive za taj thread (jeste da ce se nalaziti u drugom thread-u (verovatno glavnom), ali ce samo thread koji se nalazi u klasi moci da im pristupi tako da ne postoji opasnost i potreba za sinhronizacijom ta dva thread-a) koje mozes dodeliti prilikom pozivanja Create constructor-a (moraces samo da ga malo promenis tako da prihvata podatke koje zelis da prosledis thread-u).
U sustini... Delphi tim je ucinio thread-ove lakim za koriscenje :)
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Thread & klasa 21.12.2005. u 17:43 - pre 222 meseci
Moze li se to nekako odraditi bez TThread klase ? Znaci ono, pomocu BeginThread() fje ?

poz
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Thread & klasa 21.12.2005. u 20:54 - pre 222 meseci
Nikad mi nije bilo jasno zasto svi beze od TThread pored prednosti koje nudi :)
Kao sto sam ti vec rekao u proslom postu, BeginThread ne moze da uzima funkciju neke klase nego obicnu funkciju. Ako imas kod... recimo ovakav
Code:
type
  TKlasa = class
    procedure ThreadProc(...);
  end;

var
  K: TKlasa;

begin
  K := TKlasa.Create;
  BeginThread(K.ThreadProc, ...);
  .
  .
  .
end.

To nece moci jer je procedura koju dajes BeginThread-u ustvari procedure of object, a ne obicna procedura. Nadam se da sad razumes sta ti govorim.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Thread & klasa 22.12.2005. u 14:31 - pre 222 meseci
Yup, kontam :)
A zasto ne koristim TThread klasu... zbog velicina kompajliranog koda.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Thread & klasa        22.12.2005. u 14:55 - pre 222 meseci
Cimi mi se da si vec nekoliko puta pitao slicna pitanja u vezi sa threadovima... moj savet bi bio da da pogledas kako je TThread klasa napisana (u sustini ima jedna globalna procedura koja poziva funkcije kreiranih TThread klasa) i da uradis jednu slicnu za sebe. Posto neces koristiti VCL kod ce i dalje biti mali, a rad sa threadovima znatno olaksan.
 
Odgovor na temu

reiser

Član broj: 7895
Poruke: 2314



+102 Profil

icon Re: Thread & klasa 22.12.2005. u 16:50 - pre 222 meseci
U pravu si, nema 'leba dok ne napises nesto sam :)
Thx
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Thread & klasa        

[ Pregleda: 2616 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.