Czy można bezpiecznie używać tego samego obiektu Encoding
z różnych wątków?Bezpieczeństwo wątków i System.Text.Encoding w języku C#
Przez „używając” mam na myśli, nazywając Encoding.GetString()
, Encoding.GetBytes()
i napisać XML z XmlWriter
(stworzony przez coś podobnego XmlWriter.Create(myStream, new XmlWriterSettings() { Encoding = myEncoding })
.
The stronie msdn stwierdza, że „Wszelkie członków instancji nie są gwarancją pewności wątek” .
Tak, jak mogę spokojnie napisać dwa dokumenty XML jednocześnie (dziękuję !!)
Dziękuję! Chciałem tylko upewnić się, ponieważ nie mogłem znaleźć potwierdzenia w innym miejscu. – thaller
Czy to jednak? Właściwości statyczne w "Kodowaniu" są bezpieczne dla wątków, ale nie oznacza to, że obiekty odsłonięte przez te właściwości są wątkowo bezpieczne. Jestem w sytuacji, w której muszę kodować * dużą * liczbę ciągów równolegle i nie chcę tworzyć ton instancji instancji 'Utf8Encoding'. – casperOne
@casperOne: Dwa pytania: 1) Czy wiesz, że 'Encoding.UTF8' faktycznie daje nowe kodowanie za każdym razem; 2) Czy właściwie zmierzyłeś *, czy za każdym razem tworzenie nowej instancji byłoby problemem, nawet jeśli tak się dzieje? –