У меня есть форма Windows с ListView в режиме отчета. Для каждого элемента в представлении мне нужно выполнить длительную операцию, результатом которой является число.
Я бы сделал это в native win32, чтобы создать рабочий поток для каждого элемента (наивно, конечно, я не буду создавать неограниченное количество потоков), а затем MsgWaitForMultipleObjects() в массиве ручек потоков. По мере завершения каждого вычисления сигнал потоков и основной поток пользовательского интерфейса просыпаются и обновляются. В то же время мы накачиваем сообщения, чтобы поток пользовательского интерфейса оставался отзывчивым.
Может ли кто-нибудь представить пример того, как это может работать на С#? Я посмотрел на объект Monitor, и, похоже, это не то, что я хочу - или он накачивает сообщения при блокировке?
Спасибо.
Изменить: Кажется, что WaitHandler.WaitAny() может действительно накачать сообщения. См. cbrumme трактат о пересылке сообщений в среде CLR.