簡體   English   中英

在C#Winform中冗長的onPaint事件周圍的正確方法?

[英]Proper way around lengthy onPaint event in C# winforms?

我目前正在開發C#winforms圖形應用程序。 為了弄清楚這一點,我的圖形控件的Paint事件處理程序必須繪制成千上萬的點,這可能需要幾秒鍾的時間。 在此期間,應用程序被凍結。 我的目標是:如果用戶在繪制較舊的數據時更改了要繪制的數據,則它將在繪制較舊的數據的過程中停止並開始繪制新的數據。 這樣做的正確方法是什么?或者我完全不知道這是什么? 我試圖使我的問題盡可能清楚。

您的問題的答案在於雙重緩沖。 您無需了解有關雙緩沖的所有詳細信息即可使用它。 只需將屬性設置為true(如下所示)即可在控件中啟用它。

 MyGraphPanelControl.DoubleBuffered = true;

明顯的缺點是內存使用率,但它將大大提高面板上繪制內容的“速度”。 就像計算機科學中的許多事情一樣,您會以內存換取速度,反之亦然。

此外,從Microsoft閱讀內容將使您更深入地了解如何使用Double Buffering。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM