gpt4 book ai didi

c# - C# 中的线程安全和 System.Text.Encoding

转载 作者:IT王子 更新时间:2023-10-29 04:43:32 24 4
gpt4 key购买 nike

从不同的线程使用相同的Encoding对象是否安全?

“使用”是指调用 Encoding.GetString()Encoding.GetBytes() 并使用 XmlWriter 编写一些 XML (由类似 XmlWriter.Create(myStream, new XmlWriterSettings() { Encoding = myEncoding }) 之类的东西创建。

msdn 站点声明“不保证任何实例成员都是线程安全的”。

那么,我怎样才能安全地同时编写两个 XML 文档呢? (谢谢!!)

最佳答案

是的,使用相同的 Encoding 对象应该是安全的,因为它被设计为无状态的 - 而 EncoderDecoder是有状态的,必要时维护不完整的字符等。我想您可以编写一个有状态的 Encoding 类,但这将是一个非常糟糕的主意。据我所知,所有内置编码实现都是无状态和线程安全的。

例如Encoding.UTF8Encoding.ASCII等属性都是单例。

关于c# - C# 中的线程安全和 System.Text.Encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com