簡體   English   中英

在沒有 memory 過度使用的情況下在 DataGridView 中重復顯示相同的圖像

[英]Showing the same image repeatedly in a DataGridView without memory over-use

我想我在做一些非常愚蠢的事情,但找不到替代方案!

我有一個我的表單將要處理的文件列表,並且正在使用 datagridview 來顯示它們以及我在列表中的進度。 我有一個“等待”“處理”和“完成”的圖像資源,並將它們全部放入DataGridViewImageColumn中。

For Each file As String In folderListing
     DataGridView1.Rows.Add(file, My.Resources.WaitingImg)

Next

問題是,它似乎為每個圖像使用了一小塊 RAM,當我在測試運行中有 5,000 個時,它使用了 4Gb ...

我該怎么做才能只加載一次資源但在數百或數千個地方顯示它?

不要重復使用My.Resources的任何屬性。 每次使用此類屬性時,它都會從資源中提取數據並創建一個新的 object。 在任何特定上下文中,獲取一次屬性,分配給一個變量,然后多次使用該變量,例如

Dim waitingImg = My.Resources.WaitingImg

For Each file As String In folderListing
     DataGridView1.Rows.Add(file, waitingImg)
Next

如果您需要更改圖像,請先將資源屬性分配給字段,然后在需要時使用這些字段設置單元格值。

暫無
暫無

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

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