0
votes

Fils et variables C ++

J'ai un problème dans le programme que j'écris. J'ai des fonctions de retour des pointeurs et dans la principale () Je veux les exécuter dans des threads.

Je suis capable d'exécuter les fonctions dans les threads: p> xxx pré>

} p>

dans MAIN () P>

arrTh1 = SplitFirstArray_1st(xxx);


4 commentaires

Supprimer [] Arrsplited1, Arr0; ... c'est inhabituel. Qu'attendez-vous que ça va?


@Eljay n'a pas d'importance parce que c'est un code inaccessible quand même.


Bonjour, ça ne devrait pas être là. C'est n'importe quoi". Merci.


S'il vous plaît Modifier Votre question lorsque vous avez commis une erreur.


3 Réponses :


0
votes

quelque chose comme ceci: xxx


2 commentaires

Bonjour Merci. Je vais certainement regarder cela.


STD :: ASYNC pourrait même être une meilleure solution dans des cas simples.



0
votes

Fonctions qui démarrent le thread ne peuvent pas renvoyer les valeurs de manière normale. Par conséquent, ils doivent être déclarés comme void .

Voice courante est d'attribuer une variable globale protégée. Vous devez protéger une avec des mutiles (ou d'autres méthodes) pour éviter les courses. xxx

Lorsque vous utilisez le pointeur dans d'autres threads (y compris le principal), vous devez protéger l'utilisation également avec le même mutex (ou choisir d'autres méthodes). < / p>

et s'il vous plaît, faites pas SupprSopited1 et ArR0. Il rendra le pointeur Arrth1 inutilisable.

Remarque, si vous utilisez des fonctions async , vous pouvez utiliser contrats à terme pour renvoyer des valeurs.


1 commentaires

Depuis quand est-il un moyen courant d'avoir des variables globales? En outre, il est orthographié futur .



1
votes

Ne retournez pas la variable, transmettez un pointeur sur la variable et définissez la valeur à quels points aussi.

IE: p>

  return foo;
  // No point placing code here unless you used goto as it won't get executed.
  // Also: don't use goto.
}


0 commentaires