Updating the UI from a non-UI thread

User interface in WPF (as with WinForms) is managed by a single thread. More accurately, a thread that creates windows is the owner of those windows; it means that thread must process UI messages, a process usually known as message pumping. This message pumping activity is provided by the framework (in WPF it's in the Dispatcher.Run static method; in WinForms it's Application.Run, but the idea is the same). If the UI thread is doing a lot of work or enters a wait state (by doing some I/O, for example), it won't be able to process UI messages, causing the UI to freeze, also known as "not responding". This is very bad from a user experience standpoint, and should be avoided at all costs. The simple rule is that ...

Get Windows Presentation Foundation 4.5 Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.