title: How to add strings without any problems using parallel foreach?
body: <p>Here is my current code:</p>
  
  <pre><code>Parallel.ForEach(Arguments, Argument =&gt;
  {
      if (Argument != Command_Name)
      {
          WebRequest web_request = WebRequest.Create("https://www.aol.com/?command=1&amp;domain=" + Argument);
          web_request.Timeout = 5000;
          ((HttpWebRequest)web_request).UserAgent = "Mozilla Firefox 5.0";
          HttpWebResponse web_response = (HttpWebResponse)web_request.GetResponse();
          StreamReader response = new StreamReader(web_response.GetResponseStream(), Encoding.UTF8);
          Message += Argument + " =&gt; " + response.ReadToEnd() + Environment.NewLine;
      }
  });
  </code></pre>
  
  <p>This code does not work correctly, I am looking for a SMALL alternative that does. This code returns some of the arguments in the Message string... What is a good way to multi-threaded string addition? That is what I need.</p>
  
  <p>More info: The Message string will return a, b, and c sometimes while others it will only return just a or b...</p>
  
  <p>I appreciate any help on this, thanks!</p>