Take a look at
Threading Model
Quote:
1) Can we create a ui element at runtime in a different thread in WPF? I am not clear about this question. The first question would be can we create UI elements in a different thread. If yes what would be the dispatcher scenario then.
Historically, Windows allows UI elements to be accessed only by the thread that created them. This means that a background thread in charge of some long-running task cannot update a text box when it is finished. Windows does this to ensure the integrity of UI components. A list box could look strange if its contents were updated by a background thread during painting.
Quote:
2) Can we have more than one dispatchers in WPF Application? I think its a NO
Yes, we can: Every UI thread must have at least one Dispatcher, and each Dispatcher can execute work items in exactly one thread.
Quote:
3) Can a WPF Application have multiple UI Threads? I think NO
From
Can/Does WPF have multiple GUI threads?
There can be multiple GUI threads (and therefor multiple Dispatcher instances).
However: Simply creating a new window (modal or not) does not create a new GUI thread. One needs to create the thread explicitly (by creating a new instance of Thread).
Note: Instead of using separate threads, modal dialogs are likely being realized by using Dispatcher.PushFrame() which blocks the caller of this method while still allowing events to be dispatched.
Quote:
4) If we are launching the form using Form.Show() in WPF, will it launch another dispatcher? Again No
See 3) above