È sicuro utilizzare lo stesso oggetto Encoding
da thread diversi?Sicurezza thread e System.Text.Encoding in C#
Con il termine "utilizzo" Voglio dire, chiamando Encoding.GetString()
, Encoding.GetBytes()
e scrivere un po 'di XML con un (creato da qualcosa come XmlWriter.Create(myStream, new XmlWriterSettings() { Encoding = myEncoding })
.
Il sito XmlWriter
MSDN afferma che "I membri di istanza non sono garantiti per essere thread-safe" .
Così, come posso tranquillamente scrivere due documenti XML contemporaneamente (grazie !!)
Grazie !! Volevo solo essere sicuro, ma non ho trovato conferma altrove. – thaller
È però? Le proprietà statiche su 'Encoding' sono thread-safe, ma ciò non implica che gli oggetti esposti da quelle proprietà siano thread-safe. Sono in una situazione in cui devo codificare un * grande * numero di stringhe in parallelo e non voglio creare tonnellate di istanze dell'istanza 'Utf8Encoding'. – casperOne
@casperOne: Due domande: 1) Sapete che 'Encoding.UTF8' dà effettivamente una nuova codifica ogni volta; 2) Hai effettivamente * misurato * se sarebbe stato un problema creare una nuova istanza ogni volta anche se lo fosse? –