从DirectX渲染循环中分离Windows事件循环

时间:2016-01-15 21:05:55

标签: c# .net directx sharpdx

使用DirectX和SharpDX通过.NET渲染时,有没有办法将windows事件循环与directx渲染循环分离?

这意味着我希望在我调整窗口大小时继续渲染。

2 个答案:

答案 0 :(得分:1)

是的,你需要为你的windows循环事件创建一个单独的线程。

您可以使用Systems.Threading库。

请记住渲染应该在主线程中,只需为Windows事件创建另一个线程,它就可以工作。

答案 1 :(得分:1)

通常,您应该从不在应用程序主线程上执行DirectX渲染,但这不能过分强调。

在单独的System.Threading.Thread上启动并运行渲染循环后,合并一个信号机制,如System.Threading.ManualResetEvent或System.Threading.ManualResetEventSlim,以确保您的渲染线程不会尝试绘制而你正在调整SwapChain的大小。

您需要在单独的线程上完成渲染,而不是处理Windows消息。希望这有帮助!