0
只是想知道什麼最好的方法是這種情況下 - 試圖綁定到另一個後臺線程正在填充的集合。數據綁定數據仍然在另一個線程在wpf處理
我的後臺線程將項目添加到處理循環中的集合中,該循環可能會運行幾分鐘。每隔一段時間,它都會向用戶界面引發一個事件,並傳遞對集合中數據的引用,讓用戶界面可視化(以便用戶可以開始與他們所擁有的內容進行交互)並進行處理。
問題是用戶界面開始呈現可視化(這本身非常複雜),它涉及到數據集合上的foreach()循環,可以理解的是,如果我的後臺線程更改集合中的數據在枚舉期間。
所以,我的頭腦風暴已經是這樣的:
- 暫停後臺線程;但我真的不想暫停
- 將所有或每個事件中的某些數據的重複快照副本以及數據綁定到快照。可能會使內存使用量翻倍,但可能會工作
- 在同步根節點或任何集合上實現某種鎖定,因此在UI更新後臺進程時必須等待。不自信有關工作仍
- 火災的事件所有的時間,只是通過一個數據位的時間,它具有相同的結果,#2,但更多的開銷..
歡呼 尤爾特。