C# 在c中如何在ArrayList项级别设置锁定#

C# 在c中如何在ArrayList项级别设置锁定#,c#,multithreading,collections,locking,C#,Multithreading,Collections,Locking,我正在尝试实现线程安全的ArrayListCollection 我希望我的收藏应该锁定在项目级别,而不是完整的收藏 假设我的集合有10个项,那么10个线程可以同时将值从索引1更新到10,因为它们更新的是不同的数组项,所以应该允许这样做。此处更新不包括从ArrayList 由于额外的开销,我不希望使用内置的并发集合 是否有任何锁定机制可用于锁定ArrayList的单个项目 谢谢尝试使用只读集合 或 ArrayList.IsSynchronized 或 ArrayList.Synchronized“

我正在尝试实现线程安全的
ArrayList
Collection

我希望我的收藏应该锁定在项目级别,而不是完整的收藏

假设我的集合有10个项,那么10个线程可以同时将值从索引1更新到10,因为它们更新的是不同的数组项,所以应该允许这样做。此处更新不包括从
ArrayList


由于额外的开销,我不希望使用内置的并发集合

是否有任何锁定机制可用于锁定
ArrayList
的单个项目


谢谢

尝试使用只读集合 或 ArrayList.IsSynchronized 或
ArrayList.Synchronized

“我不想使用内置的并发集合,因为会增加开销。”=>最有可能的是,您自己基于
lock
的自定义实现会有更大的开销…真的:@ken2k说的。Synchronized ArrayList还锁定了完整的集合级别,基本上,它只是在每个添加、删除和其他收集方法中添加额外的锁定步骤。