Bonjour

J'ai fait un programme C++, qui fonctionne bien tant qu'il est exécuté via Visual Studio 2003, par contre si je le démarre normalement, il ne fonctionne plus du tout.

Quelqu'un a t'il déjà eu ce genre de problème? Avez vous pu le régler et comment?

description de mon programme:
Mon programme est fait de 2 threads, le premier fait des calculs quelconques, et le second affiche les résultats.
Pour éviter les problème d'accès concurrent à la variable résultat, le second thread attends
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WaitForSingleObject(evt_ready_to_display, INFINITE);
que le premier ai fini ses calculs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SetEvent(evt_ready_to_display);
, de même le premier attends pour effectuer de nouveaux calculs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WaitForSingleObject(evt_procede_next, INFINITE);
que le second thread ai afficher les résultats précédents
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SetEvent(evt_procede_next);
.
Le problème se situe dans le fait que sous visual, le second thread affiche les bonnes valeurs, mais si je lance le programme normalement, le second thread affiche toujours des valeurs érronées.

merci

PS: Il ne s'agit pas d'interbloquage, car l'affichage du résultat est différent à chaque fois.