共享集合的线程安全性

本文关键字:安全性 线程 集合 共享 | 更新日期: 2023-09-27 18:24:55

我读过很多关于同步线程、锁语句和竞争条件(使用C#)的文章。不幸的是,其中一些拒绝被我的大脑完全理解。

我有一个共享对象,其中包含不同类的Lists<>,用于读取、写入、创建和删除数据库记录。这个对象在其生命周期(应用程序的生命周期)内在不同的线程之间共享-我的问题是我无法确定如何保护/锁定这个对象,以便在不损坏数据的情况下始终可以安全地操作它。

我已经看到一个问题很少发生——有时会保存空白的数据库行——我认为这是由于另一个线程在类Save()方法中的"INSERT"answers"UPDATE"数据库查询之间更改对象。

我的感觉是一个合适的lock是解决方案,但我不知道它应该在哪里

我们非常感谢您对我哪里出了问题的任何帮助或见解!

共享集合的线程安全性

您是否阅读了.net 4.0框架中提供的新System.Collections.Concurrent命名空间。此命名空间提供了几个胎面安全集合类。。。

这是MSDN页面的链接