共享集合的线程安全性
本文关键字:安全性 线程 集合 共享 | 更新日期: 2023-09-27 18:24:55
我读过很多关于同步线程、锁语句和竞争条件(使用C#)的文章。不幸的是,其中一些拒绝被我的大脑完全理解。
我有一个共享对象,其中包含不同类的Lists<>
,用于读取、写入、创建和删除数据库记录。这个对象在其生命周期(应用程序的生命周期)内在不同的线程之间共享-我的问题是我无法确定如何保护/锁定这个对象,以便在不损坏数据的情况下始终可以安全地操作它。
我已经看到一个问题很少发生——有时会保存空白的数据库行——我认为这是由于另一个线程在类Save()方法中的"INSERT
"answers"UPDATE
"数据库查询之间更改对象。
我的感觉是一个合适的lock
是解决方案,但我不知道它应该在哪里
我们非常感谢您对我哪里出了问题的任何帮助或见解!
您是否阅读了.net 4.0框架中提供的新System.Collections.Concurrent命名空间。此命名空间提供了几个胎面安全集合类。。。
这是MSDN页面的链接