2010-06-24 65 views
4

我开始制作3D游戏。然后我停了一段时间,并安装了win7。 现在我想继续研究它,只是为了发现代码冻结! XP上的 我将视图渲染到窗体上。和游戏循环和所有的游戏形式运行在同一个线程!c#代码。作品在胜利XP不能在胜利7

这工作在XP上。 现在在win7中,3d循环仍然可以工作,但所有表单都不想在同一个线程上工作。

我记得在VB中一些被称为“调用DoEvents”不知道是否有在C#这样的事情...

我试图重新绘制在主回路的所有形式。 现在所有的标签更新,但表格没有得到键输入,并经过一段时间冻结,直到窗口告诉我我的应用程序被卡住(所有这些和主循环运行和渲染3d没有问题)

我不不明白为什么所有的工作都在XP的相同线程上,而在win7中看起来像我需要为这些表单创建一个线程系统!

是的代码工作在XP!

+0

Win 7(和Win Vista)有一个完全不同的多媒体接口和子系统,所以你的代码在Win 7上无法工作并不令人惊讶。你需要发布信息一些代码 – RobS 2010-06-24 04:43:23

+0

VB中的“DoEvents”是C#中的'Application.DoEvents();'。 – icktoofay 2010-06-24 04:44:02

+0

你在做关于Application.DoEvents的事情,这只是框架的一部分,而不是语言。 – BobbyShaftoe 2010-06-24 04:44:08

回答

2

如果你必须运行在同一线程上的一切,你可以使用:

Application.DoEvents(); 

这相当于在VB.NET“的DoEvents”。希望这有助于...

+0

好神圣的废话。我知道有这样的事情! 有趣的是它如何在没有这个XP的情况下工作! 现在工作就像一个梦想TNX! – kalix 2010-06-24 05:19:29