C# Tao OpenGL框架SimplePenglControl-何时重新绘制,何时不重新绘制?

C# Tao OpenGL框架SimplePenglControl-何时重新绘制,何时不重新绘制?,c#,opengl,redraw,tao-framework,C#,Opengl,Redraw,Tao Framework,我正在Visual Studio Express 2008中使用C 我也在使用Tao框架OpenGL DLL 当我需要重新绘制SimplePenglControl时,究竟是什么导致它重新绘制 当SimplePenglControl驻留在活动窗体上时,我只需调用glFlush和SimplePenglControl.Invalidate即可重新绘制 但是,当控件不在活动窗体上时,我根本无法让它重新绘制。我已经找到了一种方法,通过非正统的方式使控件失效,但这并没有在3D渲染中重新绘制控件的内容,它只是

我正在Visual Studio Express 2008中使用C

我也在使用Tao框架OpenGL DLL

当我需要重新绘制SimplePenglControl时,究竟是什么导致它重新绘制

当SimplePenglControl驻留在活动窗体上时,我只需调用glFlush和SimplePenglControl.Invalidate即可重新绘制

但是,当控件不在活动窗体上时,我根本无法让它重新绘制。我已经找到了一种方法,通过非正统的方式使控件失效,但这并没有在3D渲染中重新绘制控件的内容,它只是给我留下了一个空白的黑色控件


无论哪个窗体处于活动状态,我需要做什么才能使控件真正重画?

显然,我的问题不在SimplePenglControl重画中,而是在调用函数的线程中

我的应用程序等待,直到它在一个线程中获得新数据,然后通过委托的显示函数将数据传递回表单

虽然没有出现错误或警告,但显然我的OpenGL渲染缓冲区没有被填充,因为填充它的函数是从独立线程调用的

虽然我不完全理解threadsafe函数委托,但我在窗体运行的线程下完成了这些过程,我的OpenGL渲染缓冲区再次感到高兴

因此,我的问题的答案是: OpenGL不会填充任何渲染缓冲区,除非它发生在初始化的同一线程上