title: Are there any issues with my multithreaded HttpClient?
body: <p>So after dabbling with Java and HttpClient, I've decided to transition to C# to try and lower the memory usage while increasing speed. I've been reading tons of articles provided by members on here regarding async vs multithreading. It appears multithreading would be the better direction. </p>
  
  <p>My program will be accessing a server and sending the same requests over and over until a 200 code is retrieved. Reason being is because during peak hours the traffic is very high. It makes the server is VERY hard to reach and throws 5xx errors. The code is very bare, I didn't want to add the loop yet to help with simplicity for the viewers.</p>
  
  <p>I feel that I am heading towards the right direction but I would like to reach out to the community to break out of any bad habits. Thanks again for reading.</p>
  
  <p>Note to moderators: I am asking to check my code for discrepancies, I am well aware that it's okay to multithread HttpClient.</p>
  
  <pre><code>using System;
  using System.Net.Http;
  using System.Collections.Generic;
  using System.Net.Http.Headers;
  using System.Threading;
  
  namespace MF
  {
      class MainClass
      {
          public static HttpClient client = new HttpClient();
          static string url = "http://www.website.com";
  
          public static void getSession() {
              StringContent queryString = new StringContent("{json:here}");
  
              // Send a request asynchronously continue when complete
              var result = client.PostAsync(new Uri(url), queryString).Result;
  
              // Check for success or throw exception
              string resultContent = result.Content.ReadAsStringAsync().Result;
  
              Console.WriteLine(resultContent);
          }
          public static void Run() 
          {
              getSession ();
            // Not yet implemented yet..
            //doMore ();
          }
  
          public static void Main (string[] args)
          {
              Console.WriteLine ("Welcome!");
  
              // Create the threads
              ThreadStart threadref1 = new ThreadStart(Run);
              ThreadStart threadref2 = new ThreadStart(Run);
              Console.WriteLine("In the main: Creating the threads...");
              Thread Thread1 = new Thread(threadref1);
              Thread Thread2 = new Thread(threadref1);
  
              // Start the thread
              Thread1.Start();
              Thread2.Start();
          }
      }
  }
  </code></pre>
  
  <p>Also, I am not sure if it matters but I am running this on my MacBook Pro and plan to run it on my BeagleBoard.</p>