Je suis un peu novice en matière de programmation client Windows. J'ai un travailleur d'arrière-plan qui a un événement DoWork et un événement RunCompleted câblé. Si une exception est levée dans DoWork, je veux apporter des modifications à mon interface utilisateur, mais je ne peux pas parce que c'est dans un thread différent. Je peux communiquer l'erreur à RunCompleted, mais cela ne m'aide pas non plus.WPF: Comment gérer les erreurs avec un BackgroundWorker
2
A
Répondre
4
appel Dispatcher.BeginInvoke. Fondamentalement, vous voulez un code comme celui-ci:
void UpdateState(WhatEverType someObject)
{
if (! Dispatcher.CheckAccess())
{
Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(()=>UpdateState(someObject));
}
else
{
//make the UI changes here.
}
}
Très bonne réponse, j'aime la façon dont il se appelle à travers le répartiteur. Je vous remercie :) –