2010-06-24 32 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