我正在为 MFC 应用程序构建一个 .net 插件。我使用 WinForms 和 .net4 创建了一个表单。该表单在用户单击 MFC 应用程序中的按钮后显示。我的一个控件使用 Application.Idle 来完成一些任务。
问题是,似乎 Application.Idle 从未被解雇。
- 在这种情况下,“应用程序”到底指的是什么?是整个 MFC 应用程序,还是 .net 表单?
- 为什么 Application.Idle 不触发?
更新
我设法让它工作,这里有两种可能的解决方案:
- 使用 Form.ShowDialog() 显示表单(因此表单运行自己的 .net 消息泵)
- 创建一个 STA 线程,在 STA 线程上创建表单并调用 Application.Run()。然后你可以使用 Form.Show() (表单在它创建的线程中使用 .net 消息泵,在这种情况下:.net STA 线程)