J'essaie de créer un thread et de le laisser s'exécuter jusqu'à ce que mon principal le signale pour démarrer, ce que je pense est fait avec SetEvent. Mais le code dans le thread n'est jamais exécuté. Voici le code que j'ai dépouillé (je pense) des fonctions sans rapport. L'algorithme est-il correct? Voici ce que j'ai pensé qu'il a fait:Impossible d'exécuter mon thread avec SetEvent et WaitForSingleObject
Lorsque le thread principal est créé, ce qui signifie qu'il fonctionnera en arrière-plan. Lorsque l'événement est défini (SetEvent), le thread le récupère sur WaitForSingleObject, puis exécute le code dans le thread, n'est-ce pas?
HANDLE hThread;
HANDLE Event;
DWORD Thread()
{
while(1)
{
wait = WaitForSingleObject(Event, INFINITE)
//This is where I want to execute something
}
}
int _tmain()
{
DWORD dw;
int i;
Event = CreateEvent(NULL,false,false,NULL);
hThread = CreateThread(NULL,0,Thread,EventA,0,NULL);
while(1)
{
if (condition is correct)
{
SetEvent(Event);
}
CloseHandle(Thread);
CloseHandle(Event);
}
return 0;
}
Merci d'avoir lu.
\ o/Merci beaucoup mon pote :) – BlaBla