Frage zu Thread Events ??



  • Also soviel ich bisher herausgefunden und studiert habe, kann über die Funktion WaitForSingleObject auf ein bestimmtes Event (CEvent) welche durch ein Thread gesetzt wird gewartet werden.

    Über die Funktion WaitForMultpliObjects wird über die das Thread-Handle auf BEENDINGUNG eines Thread gewartet, und auf ekein Event!?!?! Seh ich das richtig?



  • BorisDieKlinge schrieb:

    Also soviel ich bisher herausgefunden und studiert habe, kann über die Funktion WaitForSingleObject auf ein bestimmtes Event (CEvent) welche durch ein Thread gesetzt wird gewartet werden.

    Nicht nur Events. In der Dokumentation steht doch, auf was du warten kannst.

    Über die Funktion WaitForMultpliObjects wird über die das Thread-Handle auf BEENDINGUNG eines Thread gewartet, und auf ekein Event!?!?! Seh ich das richtig?

    Nein. Der Unterschied zwischen WaitForSingleObject und WaitForMultipleObjects besteht nur darin, dass WaitForMultipleObjects eben auf mehrere Handles gleichzeitig warten kann. Steht aber auch in der Dokumentation.



  • achso... naja hatte da immer Problem d.h. ich kann ein CEvent Array verwenden, und wenn bspw. alle Events des Array gestzt sind, reagiert das WaitfForsingleObjects!?



  • BorisDieKlinge schrieb:

    achso... naja hatte da immer Problem d.h. ich kann ein CEvent Array verwenden, und wenn bspw. alle Events des Array gestzt sind, reagiert das WaitfForsingleObjects!?

    Mit WaitForSingleObject kannst du nur auf ein Objekt warten.

    Und mit WaitForMultipleObjects kannst du nur auf ein Array von HANDLEs warten, nicht auf ein Array von CEvent-Objekten.

    MSDN Library schrieb:

    lpHandles
    [in] Pointer to an array of object handles

    Da steht nichts von CEvent. Welchen Teil davon verstehst du nicht? 😕

    Wenn du unbedingt mit CEvent arbeiten willst, dann schau dir CMultiLock an.



  • Es geht draum das ich mehrere Thread laufen habe, jeder Thread soll je nach bedingung ein CEvent Objekt setzen (pr thread ein Elem des CEvent Arrays). Und ein Weitere thread soll warten bis alle Thread ihr CEvent gestezt haben.

    verstanden das problem?



  • Dann tu, was ich dir oben geraten habe.



  • kannst du mir erklären wie ich das mit CMutliLock mache? das meintes tdu ja? sehe kein Bezug zwischen CMutlilock und "WaitFor.....".

    sorry wenn ich aufm Schlauch stehe, aber ich bin Anfänger was Threading angeht.



  • Zuerst mal: Die ganzen MFC Klassen kapseln die ganzen WinAPI Funktionen!
    Aus diesem Grunde ist es nicht sehr ratsam beiden zu mischen; sonst kommst Du nur durcheinander!

    Also: Entweder verwende die MFC Klassen oder mach alles mit der WinAPI.



  • BorisDieKlinge schrieb:

    kannst du mir erklären wie ich das mit CMutliLock mache?

    Das steht doch in der MSDN Library. Fängt an mit "To use a CMultiLock object..."

    Wenn du ein konkretes Probleme bei der Umsetzung hast, dann frag hier nach.


Anmelden zum Antworten