代码之家  ›  专栏  ›  技术社区  ›  Francisco Noriega

XElement的添加操作线程安全吗?

  •  5
  • Francisco Noriega  · 技术社区  · 14 年前

    通过其Add方法以并行方式(如在并行foreach中)向XElement添加子元素是否安全?

    谢谢!

    2 回复  |  直到 14 年前
        1
  •  9
  •   Daniel Renshaw    14 年前

    documentation :

    任何公共静态(在视觉上共享 基本)此类型的成员是线程 安全。任何实例成员都不是 保证线程安全。

    换句话说,不 add 方法不是线程安全的。

        2
  •  0
  •   McKenzieG1    13 年前

    最近的(痛苦的)经历使我认为这是非常非常不安全的。

    我分析了几个包含7.4的转储文件 百万 和880万个多余的像素实例。据我所知,它们是在同时从两个线程池线程调用一些外观无害的代码(包括在某些情况下调用Add())时创建的。

    这一点也不奇怪——XElement和相关的类是使用类似链表的结构实现的,如果您对链接引用进行置乱,则会导致各种奇怪的结果——循环、未连接的片段等。