|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Nouveau Membre du Club
![]() Inscription : novembre 2009 Messages : 36 ![]() |
bonjour
j'essaie de faire une fonction "pratique" pour la programmation multithread. elle lancera une autre fonction dans un nouveau thread ou pas en fonction du nombre de coeurs disponibles (indépendamment des autres applications en cours évidemment). c'est du bricolage, donc si vous avez des idées d'amélioration hésitez pas ^^. donc en gros la fonction prend en paramètres 2 fonctions et 2 arguments pour les fonctions. la première fonction retourne void car c'est celle qui sera lancée avec std.concurrency.spawn() si un coeur est disponible. elle sera appelée avec le premier argument. la deuxième fonction est celle qui sera lancée si aucun coeur n'est disponible. elle est appelée avec le deuxième argument. si un nouveau thread a été lancé, ce qui est intéressant à récupérer est son Tid, sinon c'est la valeur de retour de la deuxième fonction. pour savoir quel type de valeur j'ai récupéré, j'ai fait une classe avec en template le type de retour de la deuxième fonction. cette classe contient 2 éléments, un Tid et un élément du type template, comme ça l'un ou l'autre est vide, et je peux savoir ce que j'ai récupéré (quand je disais que c'était bricolé...). le problème est que j'obtiens une erreur à la compilation, alors que je ne vois pas ce qui ne correspond pas: Citation:
voici le code utile pour la première partie: Code :
|
|||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com