我正在學習使用C#Win窗體中的多線程,並根據來源最好的方法來實現這是通過調用工作線程的主要方法。動態添加大量的控件形成另一個線程
現在這一切都很好,當必須完成繁重的處理,然後更新圖形用戶界面。
但是我有一個場景,我需要以編程方式在面板內添加大量控件。這可能會高達數千(面板將滾動)。因此,由於控件最終被主線程添加,程序仍然掛起,直到完成。
有沒有辦法解決這個問題?或者我應該嘗試使用其他控件,而不需要我同時實例化很多控件(因爲這顯然有點重)。
基本上這個面板包含一個列表和一個圖標(取決於狀態)。因此,我爲每個條目創建了一個標籤,我不知道它是否是理想的方式。
順便說一句,我來自網絡應用程序開發部門...有沒有類似於.NET中的div控制?我查看了一個富文本框,但它似乎沒有讓您以直接的方式添加圖像。
在此先感謝。
我強烈建議所有.Net Windows應用程序開發的WPF而不是winforms。這是[更快](http://www.youtube.com/watch?v=D3Y6DnFpHCA)來處理大型列表,因爲它具有內置UI虛擬化,硬件加速和基於矢量的圖形。 winforms是一項非常古老的技術,不再關心任何人,不推薦用於任何新項目,只是爲了維護傳統應用程序。 –
順便說一句,如果你來自網頁背景,那麼XAML + DataBinding方法對於你來說會比可怕的程序化太多代碼爲任何形式的winforms方法感覺更自然。 winforms不支持任何類型的自定義,並且在需要大量UI元素的情況下它執行得非常糟糕。 –
不,沒有什麼像winforms中的'div'。 winforms實際上是GDI +的一個包裝,它是一種恐龍技術。它沒有被設計用於定製/現代/豐富的用戶界面開發,僅用於Windows 3.1類似的東西。你應該真的在使用WPF。 –