| 

.NET C# Java Javascript Exception

4
Hallo

Ich habe einen Dispatcher welchem ich ganz normal via BeginInvoke() Dinge übergebe.

Nun möchte ich in einem anderen Thread (d.h. einem anderen Thread als der dem Dispatcher assoziierte Thread) solange warten bis der Dispatcher heruntergefahren wurde d.h. keine Invokes mehr verarbeitet werden (entweder weil InvokeShutdown(), BeginInvokeShutdown() oder ExitAllFrames() aufgerufen wurde).

Nun das Problem: Ich habe den Thread, zu welchem der Dispatcher gehört, nicht unter Kontrolle bzw. erzeuge ihn nicht selber. Daher kann ich auch kein Signal verwenden (z.B. ein ManualResetEvent nachdem Dispatcher.Run() zurückgekehrt ist).

Hat irgend jemand eine Idee wie ich mich irgendwie benachrichtigen lassen kann sobald der Dispatcher seine Verarbeitung einstellt?

Irgendetwas mit niedrigster Priorität via BeginInvoke() in die Queue zu stellen funktioniert ja nicht (währe ja nichts anderes als ein "DoEvents", was ja nicht mein Ziel ist).
07.03.2011
Andi 151 5
1 Antwort
0
Du könntest dir das Event Dispatcher.ShutdownStarted abonnieren.
07.03.2011
Konstantin 3,7k 1 8
Habe ich zuerst auch gedacht, aber leider funktioniert das nur für InvokeShutdown() bzw. BeginInvokeShutdown() aber nicht für ExitAllFrames().
Andi 07.03.2011
Muss es ExitAllFrames sein? Generell würde ich dir InvokeShutdown anstatt ExitAllFrames empfehlen.
Konstantin 07.03.2011
Muss es ExitAllFrames sein? Generell würde ich dir InvokeShutdown anstatt ExitAllFrames empfehlen.
Konstantin 07.03.2011
Ja leider, in unserem Szenario stellt ExitAllFrames() eine legitime (und sinnvolle) Vorgehensweise dar.
Andi 07.03.2011

Stelle deine Threads-Frage jetzt!