我處於這種情況,我有代表遊戲對象的文本文件。 我所要做的就是解析文件並獲取遊戲對象將被繪製的點。 例如批量UI更新是否值得對付BeginInvoke瓶頸?
fruits.txt
pear 10, 20
orange 10,38
每當我用grep的問題,我用調度的BeginInvoke更新新的水果在屏幕上。 這比調用單個線程更好。每當我有多個屏幕並行更新它們的點時,它會變得非常緩慢,並且在畫到屏幕時開始掛起或幀跳轉。 這是因爲BeginInvoke隊列消息?儘管BeginInvoke凍結仍然比Invoke快,儘管Invoke有一個更平滑的更新。我如何讓BeginInvoke「刷新消息」來屏幕顯示。 在其他一些帖子中有一個想法,我可以將隊列中的點保存在一個隊列中,並在隊列中仍然存在某些東西時畫到屏幕上,但沒有任何區別。 請有什麼建議嗎? 謝謝。
分派器機制並非真正的輕量級。如果您必須多次調用它,您可以考慮創建一個線程安全隊列並BeginInvoke一個ProcessAllItems方法。 –