1 pièce(s) jointe(s)
problème de création de thread
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:
Code:
1 2 3 4 5 6 7 8 9 10 11
| #include "testThread.h"
#include <iostream>
int main()
{
testThread test(5);
return 0;
} |
testThread.h:
Code:
1 2 3 4 5 6 7 8 9 10
| #pragma once
class testThread
{
public:
testThread(int param);
private:
void runThread();
int itr;
}; |
testThread.cpp:
Code:
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;
} |
La classe testThread lance donc un thread qui affiche hello autant de fois que la valeur du paramètre passé lors de son instanciation.
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.