j'ai commencé à jouer avec boost :: discussions, mais je suis un peu coincé avec ce problème:Utilisation d'exceptions dans un boost :: thread thread
Je ne comprends pas pourquoi ce programme se bloque comme Dès que l'exception est levée, parce que j'essaie de l'attraper dans le fil. Je pensais qu'il serait possible de travailler avec des exceptions aussi longtemps que la manipulation se passe dans le même fil que le lancer?
#include <boost/thread.hpp>
#include <exception>
using namespace std;
void doWork();
void thrower();
int main(int argc, char** argv){
boost::thread worker(doWork);
worker.join();
return 0;
}
void doWork(){
try{
thrower();
}
catch(const exception &e){
//handle exception
}
}
void thrower(){
// program terminates as soon as the exception is thrown
throw exception();
}
Informations complémentaires:
* Utilisation MingW32
* Boost v.1.44
* Liaison dynamique contre la dll de débogage multithread Version du fil lib
Ce ne sera même pas compiler sans déclarations appropriées en marche avant et 'l'aide std' d'espace de noms. Mais si je les ajoute, ça fonctionne très bien sur Ubuntu Linux avec Boost 1.40. –
Désolé, il s'agit d'une version réduite du code, pour afficher le problème. Avez-vous lié statiquement ou dynamiquement? – zitroneneis
Fonctionne bien pour moi aussi. Mac OS X utilisant Boost 1.44 lié dynamiquement. –