我正在將DataTable存儲在ASP .NET Cache屬性中。可以對數據表進行操作:DataTable和線程安全
- 結合網格控制(即第三方電網內部管理數據源對象,回傳後的數據源是空的,我認爲,一旦數據綁定它不使用數據源數據表中的任何更多)
- 去除數據錶行(Row.Delete()
我加入時對DataTable實例明確工作基本讀/寫鎖,但我不知道有沒有與任何其他線程安全問題解決方案,我想在網格時可能會出錯控件位於DataBinding的中間,其他線程刪除行?如果是這樣,我怎樣才能同步訪問該表,以便沒有刪除方法調用時,網格控制綁定?是否有任何事件組合,我可以把AcquireWriterLock & ReleaseWriterLock方法?
謝謝你,帕維爾
謝謝!如何更改列值?它是否也會導致問題?我可以添加列IsDeleted,並且不會渲染具有該標誌集的行。 – dragonfly
@dragonfly但是,你最有可能最終會從非UI線程中引發事件,綁定將嘗試對非線程做出反應 - 再次在非UI線程中。這反過來很可能會做壞事。 –
不是個好消息。那麼如何以安全的方式實現緩存.....? DataTable.Copy()並在該副本上進行綁定? – dragonfly