Thread

Signaler
Messages postés
54
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
6 juin 2011
-
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
-
voila mon code  ...
j'esplique, j'ai une class qui contien une function que je veut apeler dans un thread et cela me cause certain probleme   que j'ai decrit plu bas dans le code merci d'avance pour votre aide

class allo
{
private:
         int i;
public:
         void all();
};

allo k;

bool isbackground;
Thread ^trd;
ThreadStart ^mythread;

mythread = gcnew ThreadStart(k.all);     <-- j'ai une erreur ici : function call missing argument list; use 
                                                                                       '&c_thread::abord' to create a pointer
to member
                                                                                       donc j'Essaie de faire comme ils disent avec le & ... mais cela me crée 
                                                                                          d'autre erreur me me dit ke c'est 'illegal

trd = gcnew Thread(mythread);
trd ->IsBackground = isbackground ;
trd ->Start();

thx a tous

5 réponses

Messages postés
54
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
6 juin 2011

p.s. je suis sous visual c++ 2008 donc en .net
Messages postés
202
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
6 mars 2010

être sous visual 2008 ne veut pas dire .net
tu est en c# c'est tout
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Non ce n'est pas du C# mais du C++.NET

li >> ThreadStart doit probablement prendre un pointeur sur fonction. Or, tu essais de passer un pointeur sur une méthode (non static). Je ne connais aucun moyen de faire cela. all devra être une fonction ou bien une méthode static (ce qui implique qu'elle ne pourra pas utiliser d'attributs non static et que ces attributs (static) auront une porté globales).

C++ (@++)<!--
Messages postés
54
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
6 juin 2011

allor si je declare ma fonction all en static void cela devrais fonctionner :


 


ex:
class allo
{
private:
         int i;
public:
         static void all();
};


 


 
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Non. i n'est pas static et je suppose que all utilise i.

Fais de all une fonction et non une méthode. On évitera ainsi de se casser la tête inutilement. En plus, ça reviendra au même.

C++ (@++)<!--