Parametr pthread_create - dotaz na C++ckare
Stanislav Meduna
stano na trillian.eunet.sk
Čtvrtek Únor 4 20:09:40 CET 1999
On 4 Feb 1999 16:56:50 +0100, Jacek Kopecky wrote:
: Parametr this je totiž nutný a (možná kromě u statických
: metod) se ho nedá zbavit. Ale statické metody jsou zřídka vhodné.
Prave naopak, staticke metody su vhodne prave na toto, aby
sa dala wrapper funkcia spravit vovnutri triedy a nebolo
treba robit globalne funkcie.
Takze napr.:
class MujThreadT
{
public:
static void * muj_thread(void *xx);
void * moja_skutocna_funkcia();
};
void * MujThreadT::muj_thread(void *xx)
{
return ((MujThreadT *) xx)->moja_skutocna_funkcia();
}
pthread_create(p, a, &MujThreadT::muj_thread, &Muj);
T.j. thread vytvorim zo statickej funkcie muj_thread
a ako argument odovzdam adresu objektu, nad ktorym
ma fungovat. Staticka funkcia si z neho naspat urobi
pointer na objekt (co je vlastne ten spominany this)
a zavola uz normalnu metodu na tomto objekte.
Pozor potom na to, kedy a ako sa takyto objekt destruuje!
Tato cesta je vhodna aj v inych pripadoch, ked je
potrebne dostat objekt do nejakeho systemu, ktory
objekty neprilis podporuje, ale da k dispozicii
jeden parameter - typicky priklad su X Window.
Zdravi
--
Stano
Další informace o konferenci Linux