Je donne les résultats suivants:fonction de fil de Strange C invocation
class DThread
{
virtual void run()=0;
_beginthreadex(NULL,0,tfunc,this,0,&m_UIThreadID); // class itself being passed as param to thread function...
static unsigned int __stdcall tfunc(void* thisptr)
{
static_cast<DThread*>(thisptr)->run();
return 0;
}
//other stuff
}
La fonction d'exécution est mis en œuvre dans une classe dérivée.
Pourquoi la fonction appelée dans le thread est-elle appelée via un pointeur this
? Est-ce une bonne pratique?
Ne peut-il pas être appelé directement?
La fonction réelle qui doit être exécutée est dans la classe dérivée.
Ma question est
Votre question est ...? – Anthony
Pourquoi la fonction appelée dans le thread est-elle appelée via un cast ce pointeur? Est-ce une bonne pratique? Ne peut-il pas être appelé directement? –
Il n'y a pas de "ceci" dans une fonction membre statique. – eemz