Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

WaitForSingleObject

Booper - 43
Fortgeschrittener (offline)

Dabei seit 02.2006
29 Beiträge
Geschrieben am: 23.04.2009 um 12:41 Uhr

Hallo Ihr "Cracks" ...

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! ;-)

Grüße Booper
h3mpti - 38
Profi (offline)

Dabei seit 05.2007
878 Beiträge

Geschrieben am: 23.04.2009 um 12:47 Uhr

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 ...
FaR_CrY
Champion (offline)

Dabei seit 11.2008
3898 Beiträge
Geschrieben am: 23.04.2009 um 12:48 Uhr

Zitat von h3mpti:

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 ...



Zu 1, das dachte ich auch grad xDD
gaucho - 41
Halbprofi (offline)

Dabei seit 10.2004
120 Beiträge
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;
}
Booper - 43
Fortgeschrittener (offline)

Dabei seit 02.2006
29 Beiträge
Geschrieben am: 23.04.2009 um 14:26 Uhr

Danke mal für Eure Mühe ... Ich hab's jetzt ganz einfach ohne Windows-Bibliotheken geregelt ... einfaches altes C ...

Eigentlich wollt ich mal sehen, ob's hier auch ein paar Leute gibt, die sich mit sowas rumschlagen!

Schönen Tag noch!
McPommes - 51
Experte (offline)

Dabei seit 09.2006
1422 Beiträge
Geschrieben am: 23.04.2009 um 19:38 Uhr

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.


*** diese Fusszeile verschwendet 45 Bytes ***

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -