Comme Windows Forms, WPF impose également un modèle de thread unique, ce qui signifie qu’on peut uniquement accéder un dérivé
de DispatcherObject spécifié à partir de thread qui le crée. Dans Windows Forms, chaque contrôle implémente l’interface ISynchronizeInvoke. Cette interface expose un ensemble de méthodes telles qu’Invoke
et BeginInvoke pour imposer un contrat de synchronisation de threads commune qu’on pourrait utiliser pour accéder un contrôle d'un autre thread. Dans WPF, on a également ce type de choses, mais ces opérations sont enveloppées
dans une classe appelée Dispatcher, Dispatcher est une façon WPF de l'activation de ce modèle de synchronisation de threads.
Voici un exemple pour modifier la propriété TextBox.Text lorsque l'appelant est dans un thread différent :
// Réinitialise la zone de texte à partir d'un autre thread
textBox.Dispatcher.Invoke(DispatcherPriority.Background, new Action(() =>
{
textBox.Text = "New text";
}));
Pour plusieurs informations sur WPF, consultez la page
Formation WPF – Foire aux Questions