salut,
Si j ai un CWinThread XXX qui fait un traitement du genre :
et que depuis le thread principale je fait XXX->SuspendThread() durant l'execution de ActionA()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 do { Semaphore->Lock(); ActionA(); Semaphore->Unlock(); ActionB(); }while(true)
Que se passe t il ?
- 1) execution du thread jusqu a liberation du CSemaphore puis suspension
- 2) suspension immediate -> donc pas de liberation du CSemaphore
mes propositions:
Dans le cas 2: je dois appeler SuspendThread() depuis le thread principal, mais seuleument si j ai pu acquerir le Semaphore.
Dans le cas 1: pas de problème (pour le Semaphore)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 XXX->Semaphore->Lock(); XXX->SuspendThread(); XXX->Semaphore->Unlock();
Le problème est le suivant :
dans tout les cas, mon thread va se suspendre trop tard![]()
Partager