threads synchronisieren

06/07/2012 09:36 Tyrar#1
ich muss mehrere threads mit dem main thread synchronisieren, hab da allerdings nen kleines problem bei der umsetzung

Code:
DWORD __stdcall ThreadProc(LPVOID lpReserved)
{
    while(1) {
        // auf nachricht vom main thread warten
        // stuff
        // nachricht an den main thread, dass hier soweit alles erledigt is
    }
    return 0;
}

DWORD __stdcall MainThread(LPVOID lpReserved)
{
    while(1) {
        // durch alle anderen threads loopen und nachricht senden dass die schleife starten soll
        // warten bis alle threads am ende der schleife angekommen sind
    }
}
hab nur keine idee wie ich das am besten umsetze, da (soweit ich weiss) critical sections usw. evtl. beim main thread greifen, dann der 1 thread und wieder beim main thread, der 2 thread aber ausgelassen wird!

ich würde auch möglichst auf globale vars verzichten und maximal den start parameter nutzen.

jemand vorschläge wie ich das umsetzen kann?
06/07/2012 10:15 MrSm!th#2
Critical Sections sollten es eigentlich tun
06/07/2012 10:15 xNopex#3
Erst alle anderen Threads starten und dann:

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Andere Threads ggbf. getrennt vom MainThread synchronisieren.
Hilft das?