Thread

cs_li Messages postés 54 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 6 juin 2011 - 25 janv. 2008 à 00:13
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 - 27 janv. 2008 à 22:25
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

cs_li Messages postés 54 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 6 juin 2011
25 janv. 2008 à 00:14
p.s. je suis sous visual c++ 2008 donc en .net
0
mezaya Messages postés 202 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 6 mars 2010
26 janv. 2008 à 16:31
être sous visual 2008 ne veut pas dire .net
tu est en c# c'est tout
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
26 janv. 2008 à 17:39
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++ (@++)<!--
0
cs_li Messages postés 54 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 6 juin 2011
27 janv. 2008 à 20:42
allor si je declare ma fonction all en static void cela devrais fonctionner :


 


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


 


 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
27 janv. 2008 à 22:25
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++ (@++)<!--
0
Rejoignez-nous