Thread et classe sous windows

TchowS Messages postés 2 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 17 août 2009 - 17 août 2009 à 14:58
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 21 août 2009 à 10:07
Bonjour,

j'aurais aimé savoir s'il est possible d'appeler une méthode d'une classe dans un thread. Si j'avais été sous linux un simple fork() aurait résolu mon problème mais là j'ai besoin d'exécuter deux méthodes qui prennent un paramètre entier en entré en même temps sous VC++

Merci pour vos réponses

1 réponse

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 août 2009 à 10:07
Salut,

Petite précision, il n'y a pas d'équivalent de fork() sous windows. fork() fait plus que créer un nouveau thread, il créé un nouveau processus qui ressemble beaucoup au processus qui a appelé fork().

Sous windows, tu as CreateThread.

Exemple d'utilisation ici.

Par contre, ça appelle une fonction, pas une méthode de classe. Il faut donc par exemple que tu passe un pointeur sur ta classe en paramètre de la fonction qui sert de point d'entrée à ton thread.

DWORD __stdcall TrieTableau(PVOID lpMyInstance)
{
  ((MyClass)lpMyInstance)->myMethod();
  return 0;
}

  hThread = CreateThread(NULL, 0, TrieTableau, &myInstance, 0, &id);


Tu peux aussi utiliser une variable globale.
Si ta méthode prend des paramètres, passe une structure en entrée de ta fonction threadée, structure contenant un pointeur sur l'objet et les paramètres à passer.
0
Rejoignez-nous