Methoden synchronisieren?

17/05/2009 - 13:21 von Marc | Report spam
Hallo,

ich habe 3 Methoden. A,B,C.

- MethodeA() setzt eine Callback, wodurch MethodeB() irgendwann, etwas
spàter aufgerufen wird!
- MethodeC() soll niemals aktiv sein, wenn A oder B aktiv ist!
Alles ist im gleichen Main Thread der Anwendung!

Ich hatte folgendes versucht, was aber nicht funktioniert:

MethodeA() - bekommt ein ManualResetEvent und ruft .Reset() auf, um das
Signal zu löschen

MethodeB() - ruft .Set() auf, um das Signal zu setzen!

MethodeC() - prüft das Signal mit .WaitOne(), kann also nur aktiv
werden, wenn MethodeB() durch ist.
Das Problem ist nur, dass ich jetzt einen Deadlock habe, weil C
aufs Ende von B wartet, B aber nicht aktiv wird, weil C am warten ist!

Wie kann ich dies verhindern, ohne evtl. weitere Threads einzuführen?

Grüße
Marc
Ich verwende die kostenlose Version von SPAMfighter für private Anwender,
die bei mir bis jetzt 10827 Spammails entfernt hat.
Rund 6 Millionen Leute nutzen SPAMfighter schon.
Laden Sie SPAMfighter kostenlos herunter: http://www.spamfighter.com/lde
 

Lesen sie die antworten

#1 Stefan Hoffmann
17/05/2009 - 13:48 | Warnen spam
hallo Marc,

Marc wrote:
MethodeA() - bekommt ein ManualResetEvent und ruft .Reset() auf, um das
Signal zu löschen


Was spricht gegen die Verwendung von lock()?

http://msdn.microsoft.com/en-us/library/ms173179(vs.80).aspx
http://msdn.microsoft.com/de-de/library/c5kehkcz(VS.80).aspx


mfG

Ähnliche fragen