2010-03-15 3 views
1

J'ai une fonction une opération qui prend beaucoup de temps Je veux commencer et terminer les opérations semblent être utilisateur (par le contrôle de barre d'état) Mais lorsque la fonction effectuée, les deux textes exécutés à la fin de la fonction. (l'utilisateur ne voit pas "Démarrer l'opération ...") Quelle solution me recommandez-vous?Retard dans l'implémentation du changement de texte dans le contrôle de barre d'état

private void btnUpdateDataBase_Click(object sender, RoutedEventArgs e) 
    { 
     TextBlockStatus.Text = "Start Operation ..."; 

     //Time consuming operation 

     TextBlockStatus.Text = "End Operation ..."; 
    } 

Répondre

1

vous devez déplacer l'exécution vers un autre thread. Procédez comme suit:

  1. Afficher le message « Traitement »
  2. Spawn un autre thread pour effectuer votre calcul
  3. Lorsque le thread termine le traitement, il doit déclencher un événement dans le thread principal
  4. En tant que partie de le gestionnaire d'événements remplace le message "processing" par le message "Completed"
Questions connexes