Есть ли (или у вас есть собственный) предпочтительный способ выполнения фоновой обработки срезами в потоке пользовательского интерфейса в Windows Forms? Как и OnIdle () в MFC?
В нативном программировании Windows вы можете сделать это для создания собственного цикла сообщений, но Application.Run () не дает нам доступа к циклу сообщений.
Событие Application.Idle не позволяет нам повторно запускать его.
Полагаю, вы могли бы вызвать нативный PostMessage () с помощью P / Invoke (поскольку нет управляемой версии), чтобы опубликовать личное сообщение "WM_IDLE" и переопределить WndProc (), чтобы его перехватить. Я не знаю, как это будет ладить с Application.Run ().
До сих пор я использовал для этого короткий таймер, но, боюсь, я теряю циклы сна, тем более что фактическое разрешение таймера грубее, чем номинальный минимум 1 мс.