¿Es Json.NET JsonSerializer seguro para subprocesos?

¿Es Json.NET JsonSerializer seguro para subprocesos?

Correcto, JsonSerializer es seguro para subprocesos.

No se comparte ningún estado durante la serialización, pero si cambia una configuración en JsonSerializer mientras está en medio de la serialización de un objeto, se usarán automáticamente.


De acuerdo con la Comparación de funciones en el sitio de Newtonsoft, es seguro para subprocesos, al igual que DataContractJsonSerializer y JavaScriptSerializer .


Si no usa referencias, JsonSerializer es seguro para subprocesos. Sin embargo, existen algunos problemas al usar referencias en un contexto de subprocesos múltiples.

Primero, hay un error en el ReferenceResolver predeterminado eso puede causar que se usen identificaciones de referencia duplicadas. Vea el problema de GitHub aquí.

En segundo lugar, al reutilizar un JsonSerializer el predeterminado ReferenceResolver tiene estado, por lo que si usa referencias, sus ID de referencia continuarán incrementándose con cada llamada de serialización que realice en lugar de comenzar en 1 para cada una. Creé un problema de GitHub para abordar este problema aquí.