Praktische Verwendung für Dispatcher.DisableProcessing?

8

Was ist ein allgemeines reales Leben für Dispatcher.DisableProcessing in WPF? Kann ich es verwenden, um Rendering und Layout auszusetzen, wenn ich eine komplexe Benutzeroberfläche in Code erstelle?

    
bitbonk 05.01.2009, 14:29
quelle

2 Antworten

5

Gemäß MSDN:

  

Die Deaktivierung der Dispatcher-Verarbeitung ist ein   fortgeschrittene Methode, die dazu gedacht ist   eliminieren Sie die Chance auf nichts anderes   Reentranz.

Sie arbeiten also an demselben Thread, auf dem Dispatcher ausgeführt wird, aber Sie möchten nicht, dass Ereignisse verarbeitet werden, während Sie diese Aufgabe ausführen. Ich denke, der wirklich relevante Punkt ist:

  

Die Auswirkungen der Deaktivierung der Verarbeitung   sind wie folgt:

%Vor%

Wenn ich das richtig verstanden habe, bedeutet das, dass Sie die Dispatcher-Pumpen-Ereignisse sicher sperren können (was zu ungewollter Wiedereintritt führen kann).

    
Kent Boogaart 05.01.2009 15:28
quelle
0

Ich kann einen Fall teilen, den wir kürzlich kennen gelernt haben. Es stammt aus dem PropertyChangedEventManager , das in WPF für PropertyChanged Event-Handler-Management verwendet wird. Wir haben den Stack erfasst, wenn die GUI tot ist:

%Vor%

Das Stapelmuster hier zeigt, dass es ein Wiedereintritt ist:

%Vor%

% PropertyChangedEventManager verwendet ReaderWriterLock , wenn die Bindung geändert wurde, daher müssen wir DisableProcessing verwenden, wenn Eigenschaften im Ansichtsmodell geändert werden, um das Problem zu vermeiden.

    
Jeffrey Zhao 09.09.2015 20:44
quelle

Tags und Links