Я разрабатываю приложение WPF. Мне нужен способ запускать каждые 5 секунд и выводить информацию, которую он захватывает. Я использовал разницу DateTime, чтобы решить, прошло ли 5 секунд. Когда я начал запускать его, я мог видеть, что правильная информация выводится каждые 5 секунд. Однако окно приложения не появилось, и я не мог найти его значок в строке состояния. Вот мой код общественный MainWindow():WPF: выход правильный, но окно не отображается
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);
Позже я обнаружил, в зависимости от того окна, я переместил этот код в других окнах будут отображаться нормально, но каждый раз, когда он переключится на окно с этим кодом, окно не будет показывать вверх. Кто-нибудь есть идеи? Заранее спасибо!
Это бесконечный цикл, который навсегда блокирует конструктор MainWindow. Совершенно очевидно, что окно не появится. Выбросьте весь этот код и вместо этого используйте таймер, предпочтительнее DispatcherTimer. – Clemens