OpenGL wglMakeCurrent()报告资源繁忙

Sin*_*rMJ 1 c++ opengl

我正常初始化我的代码,并获得有效的设备/渲染上下文,然后将这两个存储在OpenGL_Display类型的静态对象中.当我从DLL外部调用图像更新函数时,调用两者 wglGetCurrentContext()以及wglGetCurrentDC()返回NULL.当我打电话wglMakeCurrent()HDCHRC存储在我的课,GetLastError()会返回错误170(请求的资源在使用中.)

我不明白资源如何在任何地方使用.请注意,代码在.exe中运行良好,因此它与我从C#应用程序调用它有关,或者它首先在DLL中,但是对于我的生活,我无法弄清楚为什么那些资源很忙.

Jas*_*onD 6

当上下文在另一个线程中处于活动状态时,将返回此错误.

最有可能的是您的创建/初始化代码执行a wglMakeCurrent(),但在返回之前不会将上下文设置回NULL.

如果绘图然后在另一个线程上发生,它将无法设置上下文并将返回ERROR_BUSY.