Bonjour,
utilisant d'habitude Qt, j'ai voulu tester la gestion des threads de la biblioth�que standard mais j'ai rencontr� un probl�me. Voici un petit programme de test qui met ce probl�me en �vidence:
source.cpp:
testThread.h:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 #include "testThread.h" #include <iostream> int main() { testThread test(5); return 0; }
testThread.cpp:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 #pragma once class testThread { public: testThread(int param); private: void runThread(); int itr; };
La classe testThread lance donc un thread qui affiche hello autant de fois que la valeur du param�tre pass� lors de son instanciation.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <thread> #include <iostream> #include "testThread.h" testThread::testThread(int param):itr(param) { std::thread myThread(&testThread::runThread, this); } void testThread::runThread() { for (int i = 0; i < itr; i++) std::cout << "hello" << std::endl; }
Cependant, m�me si l'affichage final est correct, j'obtiens le message d'erreur joint en mode debug:
En mode release, le programme crashe.
Je travaille avec visual studio 2013.
merci � ceux qui prendront le temps de lire ce message et pourront m'apporter une solution.
Partager