2013-07-17 32 views
0

我已經搜索,但無法找到一個結果,這不涉及XNA。在WinForms中強制VSYnc或限制FPS - c#

基本上,我正在製作一個地圖編輯器,使用SFML的C#綁定連接到我的表單中的面板句柄。它運行速度爲550 FPS,這導致我的主循環被調用的方式太多,使用的資源太多(小型地圖編輯器的CPU佔用率爲10%)。

我只真的需要60 fps這個,我知道這會導致CPU使用量下降很多。

有誰知道如何做到這一點?我聽說這是不可能的,因爲WinForms無法訪問圖形驅動程序VSync設置;但一定有辦法,對吧?

謝謝。

+0

我假設你的百分比是一個錯字? 10%對於經常繪製地圖來說沒有任何意義.. –

+0

但事情是,我不需要500 FPS,它會在不需要的地方帶來不必要的壓力。它只是一個二維平鋪引擎/編輯器,所以它實際上不需要超過60 fps甚至30 fps。我認爲10%的CPU對於渲染地圖每秒550次是很大的;我不需要它那麼多。 – Anteara

+0

怎麼樣sf :: Window :: setFramerateLimit?你試過了嗎? – Hiura

回答

1

我結束了使用WinForms計時器來完成我的遊戲循環處理。通過設置滴答的時間間隔,我可以獲得有效的60 FPS。

這會將CPU使用率降低到0.1%,同時仍具有相同的功能。