title: Using dictionary of GraphServiceClient is thread safe?
body: <p>I have to maintain number of graphClients in my application .<br>
  is it better way to store in dictionary? is it thread safe ?   what could be the best option ? </p>
  
  <pre><code>IDictionary&lt;string, IGraphServiceClient&gt; dict = new Dictionary&lt;string, IGraphServiceClient&gt;();  
  
      private IGraphServiceClient GetGraphServiceClient()
      {
          IDictionary&lt;string, IGraphServiceClient&gt; dict = new Dictionary&lt;string, IGraphServiceClient&gt;();
          var tenantIds = new List&lt;string&gt; { "Tenant1", "Tenant4", "Tenant1", "Tenant1" };
          foreach (var tenant in tenantIds)
          {
              var graphServiceClient = GetGraphServiceClient(tenant);
              var users = await graphServiceClient.Users.GetAsync();
          } 
      }
  </code></pre>
  
  <pre><code>
      private IGraphServiceClient GetGraphServiceClient(string i)
              {
                  if (!dict.ContainsKey(i))
                  {
                      dict.Add(i, new GraphServiceClient(new MyAuthenticationProvider(i)));
                  }
                  return dict[i];
              }
  </code></pre>