Hallo,
ich hänge eigentlich vor einem einfachen Problem.
Ich habe in einem Objekt 2 laufende Threads.
T1 darf nur arbeiten wenn T2 einen definierte Position erreicht hat.
Ich dachte mir das so, T1 setzt ein Flag.
T2 wertet bei jedem Durchgang dieses Flag aus und setzt sich auf sebst gegebenenfalls auf Suspend.
T1 wartet bis T2.ThreadState Suspend ist und setzt seine Arbeit fort.
Ist T1 fertig, Resumed er T2.
Nu bekomm ich aber die Fehlermeldung das Resume von T1 aus nicht möglich ist, da T1 dieses nicht auf Suspend gesetzt hat.
Wie gehe ich da am besten vor?
Hallo AlfameisterT,
verwende eine Semaphore. Forumssuche nach Ampel in meinen Beiträgen.
herbivore
Danke, mit der Semaphore ManuelResetEvent konnte ich das lösen.
War nur etwas tricky die Startzustände festzulegen, da nicht vorherzusagen war welcher Thread zu erst gestartet wird und beide gleichberechtig sind.
Hallo AlfameisterT,
dafür gibt es entsprechende Konstruktoren, die gleich und sicher die Semaphore in den richtigen Zustand bringen.
herbivore