Sind UI-Thread und Dispatcher-Thread in WPF identisch oder gibt es einen Unterschied?Was ist der Unterschied zwischen Dispatcher-Thread und UI-Thread?
Antwort
Ein Dispatcher ist verantwortlich für die Verwaltung der Arbeit für einen Thread.
Der UI-Thread ist der Thread, der die Benutzeroberfläche rendert.
Die UI-Threadwarteschlangen arbeiten Elemente in einem Objekt namens Dispatcher. Der Dispatcher wählt Workitems auf einer Prioritätsbasis aus und führt alle zum Abschluss. Jeder UI-Thread muss mindestens einen Dispatcher haben, , und jeder Dispatcher kann Arbeitsaufgaben in genau einem Thread ausführen.
From this article. Read it for a more thorough description of the UI Rendering in WPF
UI-Thread ist ein allgemeiner Begriff (WPF es nicht spezifisch ist) und beschreibt einen Faden, der mit ihm verbunden UI-Komponenten hat. Normalerweise gibt es nur einen UI-Thread pro Anwendung (in diesem Fall heißt es der UI-Thread), aber es kann auch mehr geben, wenn verschiedene UI-Komponenten (normalerweise Windows) verschiedenen Threads zugeordnet sind.
Dispatcher
ist der Mechanismus, mit dem WPF eine Komponente mit einem Thread verknüpft und Arbeiten an diesem Thread ausführt. Es kann aber auch einen Thread mit einer geben, aber keine zugehörigen UI-Komponenten. In diesem Fall handelt es sich um einen Dispatcher-Thread, jedoch nicht um einen UI-Thread.
- 1. Was ist der Unterschied zwischen @UiThread und @MainThread Annotation in Android?
- 2. Was ist der Unterschied zwischen `==` und `ist`?
- 3. Was ist der Unterschied zwischen:.! und: r !?
- 4. Was ist der Unterschied zwischen Difftime und '-'?
- 5. Was ist der Unterschied zwischen $ und $$?
- 6. Was ist der Unterschied zwischen Verilog! und ~?
- 7. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 8. Was ist der Unterschied zwischen/* ... */und/** ... */
- 9. Was ist der Unterschied zwischen `&` und `ref`?
- 10. Was ist der Unterschied zwischen $ (...) und `...`
- 11. Was ist der Unterschied zwischen .Equals und ==
- 12. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 13. Was ist der Unterschied zwischen + = und = +?
- 14. Was ist der Unterschied zwischen? und ? = Nil
- 15. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 16. Was ist der Unterschied zwischen:
- 17. Was ist der Unterschied zwischen der JSP und der JSTL?
- 18. Was ist der Unterschied zwischen NetFx45WebLink und NetFx45RedistLink ist
- 19. Was ist der Unterschied zwischen PS1 und PROMPT_COMMAND ist
- 20. Was ist der Unterschied zwischen x86 und x64 ist
- 21. Was ist der Unterschied zwischen „ist None“ und „== None“
- 22. Was ist der Unterschied zwischen DISPATCH_QUEUE_CONCURRENT und DISPATCH_QUEUE_SERIAL ist
- 23. Was ist der Unterschied zwischen Task.Run ist() und Task.Factory.StartNew()
- 24. Was ist der Unterschied zwischen RewriteRule ist und umleiten 301
- 25. Was ist der Unterschied zwischen ist - (void) und + (void) Methoden
- 26. Was ist der Unterschied zwischen ist HttpResponseMessage und HttpResponseException
- 27. Was ist der Unterschied zwischen nohup und kaufmännisches Und
- 28. Was ist der Unterschied zwischen: und :: und ::: in Javascript Grammatik
- 29. Was ist der Unterschied zwischen Microsoft.AspNet.WebApi.OData und Microsoft.Data.OData und Microsoft.AspNet.OData?
- 30. Was ist der Unterschied zwischen Chisel und Lava und CLaSH?