Je développe une application WPF. J'ai besoin d'une méthode pour exécuter toutes les 5 secondes et sortir les informations qu'il capture. J'ai utilisé la différence de DateTime pour décider si 5 secondes sont passées. Quand j'ai commencé à l'exécuter, je pouvais voir les informations correctes sont sorties toutes les 5 secondes. Cependant, la fenêtre de l'application n'apparaissait pas, et je ne pouvais pas non plus trouver son icône dans la barre d'état. Voici mon code MainWindow public():WPF: La sortie est correcte mais la fenêtre n'apparaît pas
InitializeComponent();
DateTime now;
DateTime _lastTime5SecondsHadPassed = DateTime.Now; ;
TimeSpan elapsed;
do
{
now = DateTime.Now;
elapsed = now - _lastTime5SecondsHadPassed;
if (elapsed.Seconds >= 10)
{
title = GetActiveWindowTitle();
Trace.WriteLine(title);
_lastTime5SecondsHadPassed = DateTime.Now;
}
} while (true);
Plus tard, je trouve fenêtre selon je me suis déplacé le code dans d'autres fenêtres semblent normalement, mais à chaque fois quand il passer à la fenêtre avec ce code, la fenêtre ne montreraient pas en haut Est-ce que quelqu'un a une idée? Merci d'avance!
Ceci est une boucle sans fin qui bloque le constructeur MainWindow pour toujours. Il est évident que la fenêtre ne s'affichera pas. Jetez tout ce code, et utilisez minuterie à la place, de préférence un DispatcherTimer. – Clemens