2012-10-02 2 views
1

Je travaille sur une application de navigateur WPF. Le problème est que je dois charger des services lourds au début, cela provoque une page blanche pendant quelques secondes avant que les composants de la page soient chargés. Y at-il un moyen d'éviter cela en chargeant la page sans attendre que les processus lourds se terminent?Comment afficher une page ou une fenêtre WPF sans attendre la fin des processus lourds

Voici la chose que je suis en train maintenant, et cela n'a pas fonctionné:

public Page1() 
    { 
     InitializeComponent(); 
    } 

    private void Page_Loaded_1(object sender, RoutedEventArgs e) 
    { 
     // Initialize and configure kinect 
     // This takes some seconds 
    } 

Je pensais l'événement PAGE_LOADED se produit après que tous les composants de la page ont fini de charger. Mais il attend encore que les processus se terminent et je reçois quelques secondes d'une page blanche au début ...

+4

multithreading est votre seul choix - recherche de cela. Je n'ai pas le temps de trouver une réponse complète, mais cela devrait vous orienter dans la bonne direction. –

Répondre

1

Pourrait utiliser BackGroundWorker et pourrait l'appeler dans les deux cas.
Vous ne pouvez pas créer ou charger un contrôle d'interface utilisateur en arrière-plan.
Construire les données et les objets (non UI) en arrière-plan, puis lier sur le rappel.

BackgroundWorker Class

Questions connexes