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