practice - thread safe list c#
Seguridad de subprocesos y System.Text.Encoding en C# (1)
Sí, debería ser seguro usar el mismo objeto de Encoding
, ya que está diseñado para ser sin estado, mientras que el Encoder
y el Decoder
son de estado, manteniendo caracteres incompletos, etc. si es necesario. Supongo que podrías escribir una clase de Encoding
estado, pero sería una muy mala idea. Que yo sepa, todas las implementaciones de codificación incorporadas son sin estado y seguras para subprocesos.
Por ejemplo, las propiedades Encoding.UTF8
, Encoding.ASCII
etc son singletons.
¿Es seguro usar el mismo objeto de Encoding
de diferentes hilos?
Con "usar" me refiero a llamar a Encoding.GetString()
, Encoding.GetBytes()
y escribir algunos XML con un XmlWriter
(creado por algo como XmlWriter.Create(myStream, new XmlWriterSettings() { Encoding = myEncoding })
.
El sitio msdn indica que "No se garantiza que ningún miembro de instancia sea seguro para subprocesos".
Entonces, ¿cómo puedo escribir de forma segura dos documentos XML al mismo tiempo? (¡¡gracias!!)