2

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

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. 
    } 
} 
+0

Très bonne réponse, j'aime la façon dont il se appelle à travers le répartiteur. Je vous remercie :) –

Questions connexes