我有一个WinForms应用程序,我希望执行一些长时间运行的操作,例如想象资源管理器并行复制2个大文件。对于每个长期运行的操作,我正在启动一个单独的UI线程(包括泵送消息/ Application.Run / Application.ExitThread),我在其中创建IProgressDialog的实例。
我想知道 - 由于Windows的线程亲和性 - 将主窗体的句柄打包到HandleRef中并将其作为进度对话框的所有者/父对象传递是合法的,该对话框位于不同的UI线程上?我没有从辅助UI线程访问主窗口的句柄(在调试模式下没有跨线程异常),只是将它传递给本机函数。
感谢。
答案 0 :(得分:0)
是的,没关系。 Windows允许不同线程的窗口具有父/子关系。