在显示过程中,Openfiledialog被挂起

Openfiledialog is hung up during showing

本文关键字:挂起 Openfiledialog 显示 过程中      更新时间:2023-10-16

我有WinForms UI代码在静态dll模块为我的应用程序。主表单有一个对话框的形式,调用openfiledialog,当用户需要改变文件路径。如果我在主线程中创建主winform对象,那么在新线程中调用Application::run()就可以正常工作。如果我在同一个线程中移动一个主要的winform对象创建,它将调用Application::run(),这在Win XP中工作得很好,但在Win7和Win8中会挂起。

FileDialog。AutoUpgradeEnabled默认为true,这意味着在Vista+上运行时,文件对话框将使用IFileDialog接口。Vista文件对话框是基于COM的。它需要一个STA线程(ApartmentState = ApartmentState.STA)和一个消息泵(如Application::Run)来避免挂起。