title: Is the Json.NET JsonSerializer threadsafe?
body: <p>I'm trying to reduce the amount of garbage my web service generates, and I noticed that we're creating a new Json.NET <code>JsonSerializer</code> instance for each request. It is not the most lightweight object ever, so I'm wondering if I can just create a single instance and reuse it for all requests. Primarily this requires that it be threadsafe during serialization and deserialization.</p>
  
  <p><a href="http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonSerializer.htm">The documentation</a> doesn't say whether it's threadsafe or not. </p>
  
  <p>Inspecting <a href="https://github.com/JamesNK/Newtonsoft.Json/blob/ce2a08dba228341742d96e8c8edfede6748d5bdc/Src/Newtonsoft.Json/JsonSerializer.cs">the code</a> it appears that the serialization and deserialization methods are threadsafe, as long as you don't change any settings on the object at the same time. However, it's a complex class so I'm not 100% sure of my analysis. </p>
  
  <p>Has anyone tried reusing instances of <code>JsonSerializer</code> and had it work or not? Are there any known problems with reusing it?</p>