我在应用程序的主线程中调用一些图形方法时遇到问题。我使用 SlimDX 在我的窗口控件中进行渲染。使用表单在主线程中执行图形代码Invoke
。通常这可以正常工作,但有时(没有固定的时间间隔)应用程序冻结并且调试器告诉我应用程序处于等待状态。
代码如下:
public void CallOnThread(Action action)
{
if (mWindow.InvokeRequired)
action();
else
mWindow.Invoke(action);
}
窗口 (a System.Windows.Forms.Fom
) 使用 SlimDXs 运行MessagePump.Run
。
我看过其他Dispatcher.Run
建议的帖子,但实际上只是阻止了整个线程而不运行任何渲染。
这种行为的原因是什么?
谢谢和问候