Toon posts:

[win32] WaitForSingleObject

Pagina: 1
Acties:

Verwijderd

Topicstarter
The WaitForSingleObject function returns when one of the following occurs:

· The specified object is in the signaled state.
· The time-out interval elapses.

Kan iemand mij vertellen wat nou die signaled state inhoud?

Verwijderd

Signaled state betekend dat een 'event' of een ander object een verandering in status heeft gekregen.

Je kan WaitForSingleObject'en op bijvoorbeeld een event. Zodra een andere thread dan SetEvent() aanroept wordt het event object 'signaled' en stopt WaitForSingleObject met wachten.
Behalve op event objecten kan je ook wachten op een thread handle bijvoorbeeld; zodra een thread is afgelopen wordt zijn object signaled. Zo kun je wachten tot bijvoorbeeld een worker thread of een ander proces klaar is.

Het event systeem en calls als WaitForSingleObject/WaitForMultipleObjects is een van de mooiste dingen uit de win32 api imho... (je kunt 't ook voor sockets gebruiken, ipv select())

Verwijderd

Topicstarter
Op vrijdag 07 juni 2002 14:04 schreef Qlone het volgende:
Behalve op event objecten kan je ook wachten op een thread handle bijvoorbeeld; zodra een thread is afgelopen wordt zijn object signaled. Zo kun je wachten tot bijvoorbeeld een worker thread of een ander proces klaar is.
Dit is wat ik dus wil doen. Ik doe dus een WaitForSingleObject en dan wordt een proces gecreeerd middels CreateProcess (een perl script wordt dan opgestart). Als ik dit afsluit is dat proces dus klaar.
Wat is dat de return value van WaitForSignalObject, zodat ik iets kan doen als:

if ((WaitForSignalObject(bla, 1000)== (gestopt))
doe iets

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Zie: MSDN

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


Verwijderd

Topicstarter
Op vrijdag 07 juni 2002 14:24 schreef Xenophage het volgende:
Zie: MSDN
Dat heb ik gehdaan maar daar ben ik niet veel wijzer van geworden, daarom post ik de vraag hier.

Verwijderd

Nou nou... dat kun je in de MSDN of PlatformSDK documentatie best zelf terugvinden... Volgens mijn exemplaar is het:

Return Values
If the function succeeds, the return value indicates the event that caused the function to return. This value can be one of the following.

Value Meaning
WAIT_ABANDONED The specified object is a mutex object that was not released by the thread that owned the mutex object before the owning thread terminated. Ownership of the mutex object is granted to the calling thread, and the mutex is set to nonsignaled.
WAIT_OBJECT_0 The state of the specified object is signaled.
WAIT_TIMEOUT The time-out interval elapsed, and the object's state is nonsignaled.

If the function fails, the return value is WAIT_FAILED. To get extended error information, call GetLastError.


Oftewel... zodra de functie returned, en de return value is *niet* WAIT_TIMEOUT of WAIT_ABANDONED of WAIT_FAILED (bij single object wordt dat dus WAIT_OBJECT_0 als return value) is het wachten gelukt...
code:
1
2
3
4
5
6
7
8
switch WaitForSingleObject(blabla)
{
case WAIT_OBJECT_0: { Gelukt(); break; }
case WAIT_TIMEOUT: { DuurtLang(); break; }
.
.
.
}

Verwijderd

Topicstarter
oh sorry niet goed gelezen

  • igmar
  • Registratie: April 2000
  • Laatst online: 23-08 16:57

igmar

ISO20022

Kan iemand het topic veranderen in [WIN32] WaitForSingleObject ??

Het is a) Geen C++ maar een C functie, en b) specifiek voor het Win32 platform.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

done

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1