[CWinThread] Suspend et synchro
salut,
Si j ai un CWinThread XXX qui fait un traitement du genre :
Code:
1 2 3 4 5 6 7 8
| do
{
Semaphore->Lock();
ActionA();
Semaphore->Unlock();
ActionB();
}while(true) |
et que depuis le thread principale je fait XXX->SuspendThread() durant l'execution de ActionA()
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.
Code:
1 2 3
| XXX->Semaphore->Lock();
XXX->SuspendThread();
XXX->Semaphore->Unlock(); |
Dans le cas 1: pas de problème (pour le Semaphore)
Le problème est le suivant :
dans tout les cas, mon thread va se suspendre trop tard :arf: