C# c语言中列表的并发访问#

C# c语言中列表的并发访问#,c#,concurrency,C#,Concurrency,如果一个线程正在C#中的列表中添加对象,而另一个线程正在修改列表中对象的属性,那么是否存在冲突的可能性,或者C#List在列表中实现了避免发生此类冲突的机制 通常没有内置保护。有些集合是线程安全的(请参见示例),并且原始集合具有可以使用的Synchronized属性,但默认情况下集合不是线程安全的。通常没有内置保护。有些集合是线程安全的(请参见示例),并且原始集合具有可以使用的Synchronized属性,但默认情况下集合不是线程安全的。C#列表不是线程安全的 .NET Framework 4在

如果一个线程正在C#中的列表中添加对象,而另一个线程正在修改列表中对象的属性,那么是否存在冲突的可能性,或者C#List在列表中实现了避免发生此类冲突的机制

通常没有内置保护。有些集合是线程安全的(请参见示例),并且原始集合具有可以使用的Synchronized属性,但默认情况下集合不是线程安全的。

通常没有内置保护。有些集合是线程安全的(请参见示例),并且原始集合具有可以使用的Synchronized属性,但默认情况下集合不是线程安全的。

C#列表不是线程安全的

.NET Framework 4在命名空间中引入了线程安全集合

您可以使用
ConcurrentBag
而不是
列表

C#列表不是线程安全的

.NET Framework 4在命名空间中引入了线程安全集合


您可以使用
ConcurrentBag
而不是
列表

在并发线程中操作列表中引用的对象可能会导致对象中有关对象状态的冲突。操作列表中的项可能会导致集合中的冲突,因为许多事情都发生在后台,例如在添加新项时重新分配缓冲区或复制元素。你必须两者兼顾。对于以.NET 4为目标的列表,可以使用名称空间。

在并发线程中操作列表中引用的对象可能会导致对象中有关对象状态的冲突。操作列表中的项可能会导致集合中的冲突,因为许多事情都发生在后台,例如在添加新项时重新分配缓冲区或复制元素。你必须两者兼顾。对于以.NET 4为目标的列表,您可以使用名称空间。

的可能重复项不管下面的答案如何,您都可以安全地引用存储在列表中的对象,并更改其属性,而不会更改列表而影响对象本身。但是,如果您从多个线程操作同一对象,则需要确保该对象是线程安全的。尽管下面的答案说明了可能的重复,但您可以安全地引用存储在列表中的对象,并更改其属性,而不必更改影响对象本身的列表。但是,如果从多个线程操作同一对象,则需要确保该对象是线程安全的。