Разница в ComponentDispatcher.ThreadIdle и DispatcherPriority.ApplicationIdle

Может кто-нибудь, пожалуйста, дайте мне знать разницу между кодом:

1.

 System.Windows.Interop.ComponentDispatcher.ThreadIdle += (s, e) => System.Windows.Forms.Application.RaiseIdle(EventArgs.Empty);

И 2.

 DispatcherTimer timer = new DispatcherTimer(DispatcherPriority.ApplicationIdle);
 timer.Tick += (s, e) => System.Windows.Forms.Application.RaiseIdle(EventArgs.Empty);
 timer.Start();

Мы размещаем WinFrom UserControl в приложении WPF, используя WindowsFormsHost, Мы пытаемся загрузить изображения (около 1000) в поток диспетчера, а также, когда приложение бездействует, мы обновляем некоторые меню и пользовательский интерфейс в Winform contorl, используя событие Application.Idle из WinForm.
В первом случае все работает хорошо, а во втором - не работает. Во втором случае мне нужно переместить мышь, чтобы продолжить загрузку изображений, в противном случае загрузка изображений останавливается.
Я собираюсь использовать первый, потому что мне нужно исправить ошибку.
Но мне нужно понять разницу, прежде чем нажимать код.

0 ответов

Другие вопросы по тегам