Kann mir jemand kurz ein einfaches Beispiel dafür geben, dass ein Thread auf den anderen mit WaitForSingleObject wartet?
Entweder bin ich zu doof oder ich mach irgendwas verkehrt.
Der eine Thread soll warten bis der andere den Handle wieder freigibt!
Danke Euch! ... Am Besten ein Beispiel bei dem der eine Thread 3 Sekunden auf den anderen wartet!
Ein paar mehr Informationen wären nicht schlecht ....
1. Welche Sprache?
2. Deine Ansätze hierzu?
3. http://www.tutorials.de/forum/c-c/193349-waitforsingleobject-problem.html hilft das evtl.?
Ich hoffe du erwartest nicht das dir hier jemand den Code vorkaut ...
Ein paar mehr Informationen wären nicht schlecht ....
1. Welche Sprache?
2. Deine Ansätze hierzu?
3. http://www.tutorials.de/forum/c-c/193349-waitforsingleobject-problem.html hilft das evtl.?
Ich hoffe du erwartest nicht das dir hier jemand den Code vorkaut ...
Geschrieben am: 23.04.2009 um 13:44 Uhr Zuletzt editiert am: 23.04.2009 um 14:00 Uhr
#include <stdio.h>
#include <windows.h>
/* Funktion die als Thread gestartet werden soll */
DWORD WINAPI foo(LPVOID pparam)
{
printf("This is foo calling, having id %d, running in Process %d\n",
GetCurrentThreadId(),GetCurrentProcessId());
}
int main(void)
{
/* Thread starten */
HANDLE thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)foo, 0, 0, 0);
/* 3000 Millisekunden auf Thread warten */
waitret = WaitForSingleObject(thread, 3000);
/* Rückgabe auswerten */
switch( waitret )
{
case WAIT_OBJECT_0 : printf("Thread finished\n");
break;
case WAIT_TIMEOUT : printf("Thread not yet finished\n");
break;
default: printf("Unknown state of thread\n");
break;
}
CloseHandle(thread);
return 0;
}
Falls du das doch noch brauchst, in der Hilfe zu der Funktion sind doch Beispiele drin.
Nimm ein Event Objekt und setz das am Ende des Threads auf signaled, vom Pronzip her müsste es das schon gewesen sein.