title: Is Application Insight's TelemetryClient Thread Safe?
body: <p>On this link: <a href="https://azure.microsoft.com/en-us/documentation/articles/app-insights-api-custom-events-metrics/" rel="noreferrer">https://azure.microsoft.com/en-us/documentation/articles/app-insights-api-custom-events-metrics/</a></p>
  <p>It explicitly says:</p>
  <blockquote>
  <p>TelemetryClient is thread-safe.</p>
  <p>We recommend you use an instance of TelemetryClient for each module of your app.</p>
  </blockquote>
  <p>However, the MSDN documentation (<a href="https://msdn.microsoft.com/en-us/library/azure/microsoft.applicationinsights.telemetryclient.aspx" rel="noreferrer">https://msdn.microsoft.com/en-us/library/azure/microsoft.applicationinsights.telemetryclient.aspx</a>) says:</p>
  <blockquote>
  <p>Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.</p>
  </blockquote>
  <p>So the problem is, most functions such as TrackEvent and TrackMetric are not static. If I follow the first article, having a singleton instance for my web service, would I run into threading problems?</p>