C# XElement.Remove()函数是否线程安全?

C# XElement.Remove()函数是否线程安全?,c#,parallel-processing,thread-safety,xelement,C#,Parallel Processing,Thread Safety,Xelement,是否执行XElement.Remove()函数线程安全?例如在Parallel.Foreach中。我可以确保不同线程中的节点不同 对于修改,LINQ到XML都不是线程安全的 通常,您几乎找不到可变的线程安全对象,除非它是专门为线程安全设计的(System.Collections.Concurrent) 这条规则的一个主要例外(Java最初的集合框架)被广泛认为是一个错误,并被单独的并发和非线程安全版本所取代。LINQ to XML中没有一个是线程安全的,可以修改 通常,您几乎找不到可变的线程安全

是否执行XElement.Remove()函数线程安全?例如在Parallel.Foreach中。我可以确保不同线程中的节点不同

对于修改,LINQ到XML都不是线程安全的

通常,您几乎找不到可变的线程安全对象,除非它是专门为线程安全设计的(
System.Collections.Concurrent


这条规则的一个主要例外(Java最初的集合框架)被广泛认为是一个错误,并被单独的并发和非线程安全版本所取代。

LINQ to XML中没有一个是线程安全的,可以修改

通常,您几乎找不到可变的线程安全对象,除非它是专门为线程安全设计的(
System.Collections.Concurrent


这条规则的一个主要例外(Java最初的集合框架)被广泛认为是一个错误,并被单独的并发和非线程安全版本所取代。

LINQ to XML中没有一个是线程安全的,可以修改

通常,您几乎找不到可变的线程安全对象,除非它是专门为线程安全设计的(
System.Collections.Concurrent


这条规则的一个主要例外(Java最初的集合框架)被广泛认为是一个错误,并被单独的并发和非线程安全版本所取代。

LINQ to XML中没有一个是线程安全的,可以修改

通常,您几乎找不到可变的线程安全对象,除非它是专门为线程安全设计的(
System.Collections.Concurrent


这条规则的一个主要例外(Java最初的收集框架)被广泛认为是一个错误,并已被单独的并发和非线程安全版本取代。

因此我应该将节点存储在System.Collections.concurrent(如ConcurrentBag)中,然后在线程操作后全部删除?@TommyLike:这完全取决于您正在做什么。线程安全并不简单;您需要弄清楚什么可能并行运行,以及它们如何相互干扰。另请参阅我的博客文章,因此我应该将节点存储在System.Collections.Concurrent(如ConcurrentBag)中,然后在执行线程操作后全部删除?@TommyLike:这完全取决于您正在执行的操作。线程安全并不简单;您需要弄清楚什么可能并行运行,以及它们如何相互干扰。另请参阅我的博客文章,因此我应该将节点存储在System.Collections.Concurrent(如ConcurrentBag)中,然后在执行线程操作后全部删除?@TommyLike:这完全取决于您正在执行的操作。线程安全并不简单;您需要弄清楚什么可能并行运行,以及它们如何相互干扰。另请参阅我的博客文章,因此我应该将节点存储在System.Collections.Concurrent(如ConcurrentBag)中,然后在执行线程操作后全部删除?@TommyLike:这完全取决于您正在执行的操作。线程安全并不简单;您需要弄清楚什么可能并行运行,以及它们如何相互干扰。另请参阅我的博客帖子,