thread safe practice lock concurrentbag concurrent best c# thread-safety

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!!)