我昨天發佈了,因爲我懷疑我寫的LINQ-to-SQL查詢很慢。我正在做的是迭代我的查詢結果,並從中構建一個DataTable。然後將DataTable綁定到我的表單上的DataGridView。DataGridView緩慢重繪
我認爲查詢是緩慢的部分,但我反駁了這個 - 查詢和DataTable構造,最多花費一兩秒鐘,但是當我在DataGridView上設置DataSource屬性時,該應用程序似乎在顯示網格之前掛起約10秒鐘。
我已經嘗試使用反射設置DGV上的DoubleBuffered屬性,但它可悲地使沒有不同。有沒有人遇到過這樣的問題?
編輯:請注意,如果網格有少量的行(即30-40),它的工作原理。只要行數達到數百個,就立即停止。
有可能是一些有用的東西在這個MSDN條目(在Windows窗體DataGridView控制性能調整):http://msdn.microsoft.com/en-us/library/ms171621.aspx –
我曾經有一個非常緩慢的DataGridView linq-to-sql在背景,因爲在數據綁定期間觸發了延遲加載的引用。如果您確定沒有這樣的事情發生,那麼我建議您手工生成相同大小的數據表,並查看是否仍然存在問題 - 如果問題仍然存在,那麼您的可能需要實現虛擬模式。 –
@David Hall:很可能是延遲加載,可以使用datacontext上的dataloadoptions來解決。另請參閱我的答案 – Pleun