C#代码在Win XP上可以运行,在Win 7上却无法运行。

4
我开始制作一个3D游戏,然后停了一段时间,安装了Win7。现在我想继续开发它,但发现代码会卡住!在XP上,我将视图渲染到窗体上。游戏循环和所有游戏窗体都运行在同一个线程上!这在XP上是可行的。现在,在Win7上,3D循环仍然可以正常工作,但所有窗体都不想在同一个线程中运行。
我记得VB中有一个叫做“DoEvents”的东西,不确定C#中是否有类似的东西……
我尝试在主循环中重新绘制所有窗体。现在所有标签都更新了,但窗体无法获得键盘输入,并且过一段时间后就会冻结,直到Windows告诉我我的应用程序被卡住了(所有这些,主循环仍然可以正常运行和渲染3D)。
我不明白为什么在XP上同一线程中所有内容都能正常工作,而在Win7上却不行。看来我需要为窗体创建一个线程系统!
是的,这段代码在XP上是可行的!

Win 7(以及Win Vista)具有完全不同的多媒体接口和子系统,因此您的代码在Win 7上无法正常工作并不令人惊讶。您需要发布一些代码。 - RobS
在VB中的“DoEvents”在C#中是Application.DoEvents(); - icktoofay
你正在处理 Application.DoEvents,这只是框架的一部分,而不是语言本身。 - BobbyShaftoe
1个回答

2

如果您必须在同一个线程上运行所有内容,您可以使用:

Application.DoEvents();

这相当于VB.NET中的“DoEvents”。希望这能帮到您...

哇,真是太棒了。我知道肯定有这样的东西! 有趣的是,在XP系统中居然可以正常工作! 现在完美地运行了,谢谢! - kalix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接