У меня есть приложение WinForms, где я хотел бы выполнить некоторые длительные операции, например, представьте себе проводника, копирующего 2 больших файла параллельно. Для каждой из этих длительных операций я запускаю отдельный поток пользовательского интерфейса (который включает в себя прокачку сообщений / Application.Run / Application.ExitThread), где я создаю экземпляр IProgressDialog .
Мне интересно - из-за схожести потоков с окнами - законно ли упаковывать дескриптор основной формы в HandleRef и передавать его в качестве владельца / родителя диалога прогресса, который находится в другом потоке пользовательского интерфейса? Я не получаю доступ к дескриптору основного окна из вторичного потока пользовательского интерфейса (без исключений между потоками в режиме отладки), а только передаю его собственной функции.
Спасибо.