我應該首先提到我是編程新手。我會盡我所能解釋我的問題和我的問題。ObjectListView已用時間列可能需要多線程
我想知道是否有可能更新ObjectListView(從這裏稱爲OLV)的單個列。我想要的是有一列將顯示每行的「經過時間」。此已用時間列將每15至30秒刷新一次。
如何設置我OLV
myOLV.SetObjects(GetMyList());
GetMyList方法返回從一個簡單的數據庫查詢填充一個列表。
在GetMyList方法中,它會將DateTime列轉換爲顯示已用時間的字符串。這隨後被OLV顯示爲一個字符串,而不是日期時間...
elapsed_time = ((TimeSpan)(DateTime.Now - x.time_arrived)).ToString("hh\\:mm\\:ss");
我如何努力使這項工作是通過使用定時器,將每30秒記得GetMyList方法。因爲該方法會重新查詢數據庫並返回它檢索到的記錄,所以它們更新。這工作得很好,直到我有超過20行的OLV。 200行的每個「刷新」需要4秒鐘才能完成。這是用戶界面無響應的4秒鐘...
由於我是新手,我從來沒有對多線程做過任何事情,但是我對它做了一些閱讀並試圖創建一個解決方案。即使當我創建一個新線程來「刷新」OLV對象時,它仍會導致整個表單無響應。
我的問題是,我怎麼能在我的ObjectListView刷新每15-30秒,而不會導致整個用戶界面變得沒有響應? 是否有可能/在後臺刷新ObjectListView然後在準備好時顯示它是一個好主意?