title: Is .NET's StringBuilder thread-safe
body: <p>The regular "Thread Safety" section of the MSDN documentation for <code>StringBuilder</code> states that: </p>
  
  <blockquote>
    <p>...any instance members are not guaranteed to be thread safe...</p>
  </blockquote>
  
  <p>but this statement feels like it has been copied and pasted for almost every class in the Framework:</p>
  
  <p><a href="http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx">http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx</a></p>
  
  <p>However, these blog posts by Gavin Pugh mention thread-safe behaviours of <code>StringBuilder</code>:</p>
  
  <p><a href="http://www.gavpugh.com/2010/03/23/xnac-stringbuilder-to-string-with-no-garbage/">http://www.gavpugh.com/2010/03/23/xnac-stringbuilder-to-string-with-no-garbage/</a></p>
  
  <p><a href="http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/">http://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/</a></p>
  
  <p>Additionally, the source of StringBuilder revealed by Reflector, and the accompanying comments 
   in the SSCLI source, also suggest many implementation considerations to ensure thread-safety:</p>
  
  <p><a href="http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&amp;namespace=System.Text&amp;type=StringBuilder">http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&amp;namespace=System.Text&amp;type=StringBuilder</a></p>
  
  <p>Does anyone have any more insight into whether a <code>StringBuilder</code> instance is safe to share among multiple concurrent threads?</p>