17
使用来自不同线程的相同对象Encoding
是否安全?C#中的线程安全和System.Text.Encoding
通过“使用”我的意思是,呼吁Encoding.GetString()
,Encoding.GetBytes()
并与XmlWriter
(通过类似XmlWriter.Create(myStream, new XmlWriterSettings() { Encoding = myEncoding })
创建。
MSDN网站写一些XML指出,“任何实例成员不能保证是线程安全的” 。
所以,我怎么能放心地写两个XML文档同时(谢谢!!)
谢谢!我只是想确定,因为在其他地方找不到确认。 – thaller 2010-06-11 16:36:13
是不是? Encoding上的静态属性是线程安全的,但这并不意味着这些属性公开的对象是线程安全的。我处于需要并行编码大量字符串的情况,而且我不想创建大量的'Utf8Encoding'实例。 – casperOne 2012-09-05 19:30:30
@casperOne:两个问题:1)你知道'Encoding.UTF8'每次都会给出一个新的编码; 2)你是否真的测量过每次创建新实例是否会产生问题? – 2012-09-05 19:32:42