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
WaitForSingleObject(evt_ready_to_display, INFINITE);
que le premier ai fini ses calculs
SetEvent(evt_ready_to_display);
, de même le premier attends pour effectuer de nouveaux calculs
WaitForSingleObject(evt_procede_next, INFINITE);
que le second thread ai afficher les résultats précédents
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.
Partager