使用DirectX和SharpDX通过.NET渲染时,有没有办法将windows事件循环与directx渲染循环分离?
这意味着我希望在我调整窗口大小时继续渲染。
答案 0 :(得分:1)
是的,你需要为你的windows循环事件创建一个单独的线程。
您可以使用Systems.Threading
库。
请记住渲染应该在主线程中,只需为Windows事件创建另一个线程,它就可以工作。
答案 1 :(得分:1)
通常,您应该从不在应用程序主线程上执行DirectX渲染,但这不能过分强调。
在单独的System.Threading.Thread上启动并运行渲染循环后,合并一个信号机制,如System.Threading.ManualResetEvent或System.Threading.ManualResetEventSlim,以确保您的渲染线程不会尝试绘制而你正在调整SwapChain的大小。
您需要在单独的线程上完成渲染,而不是处理Windows消息。希望这有帮助!