Ich entwickle eine WPF-Anwendung. Ich brauche eine Methode, die alle 5 Sekunden ausgeführt wird und die erfassten Informationen ausgibt. Ich benutzte den Unterschied von DateTime, um zu entscheiden, ob 5 Sekunden vergangen sind. Als ich anfing zu laufen, konnte ich sehen, dass die korrekten Informationen alle 5 Sekunden ausgegeben wurden. Das Fenster der App wurde jedoch nicht angezeigt. Außerdem konnte ich das Symbol in der Statusleiste nicht finden. Hier ist mein Code öffentlich Mainwindow():WPF: Die Ausgabe ist korrekt, aber das Fenster wird nicht angezeigt
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);
Später fand ich je nachdem, was Fenster ich diesen Code zog in anderen Fenstern normalerweise erscheinen, aber jedes Mal, wenn es mit diesem Code in das Fenster wechseln, würde das Fenster nicht mehr anzeigen oben. Hat jemand eine Idee? Danke im Voraus!
Dies ist eine Endlosschleife, die den MainWindow-Konstruktor für immer blockiert. Ganz offensichtlich wird das Fenster nicht angezeigt. Wirf den ganzen Code weg und benutze stattdessen einen Timer, vorzugsweise einen DispatcherTimer. – Clemens