我将 DataTable 存储在 ASP .NET Cache 属性中。可以对该 DataTable 执行的操作有:
- 绑定到网格控件(第 3 方网格内部管理数据源对象,回发后其 DataSource 为 NULL,我假设一旦绑定数据,它就不再使用数据源 DataTable)
- 从数据表中删除行(行.Delete()
我在显式处理该 DataTable 实例时添加了基本的读取器/写入器锁,但我想知道该解决方案是否存在其他线程安全问题。我想当网格控件位于数据绑定中间并且其他线程删除行时可能会出现问题?如果是这样,我如何同步对该表的访问,这样就不会Delete网格控件绑定时进行方法调用?是否有任何事件组合可以放置 AcquireWriterLock 和 ReleaseWriterLock 方法?
谢谢,帕维尔
如果您通过数据绑定公开数据表,那就忘记它吧;你不能使其线程安全。即使你把DataView
不知怎的(在一个习惯ITypedList
),这还不够 - 数据绑定对数据做出假设,特别是IList
等等 - 例如,它不会在迭代数据或在 UI 线程上添加行的过程中以线程竞争的方式随机更改长度。
There is变更规定在同一个线程上通过事件...但不是跨线程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)