So i have been multithreading lately,and since im new to this im probably doing something basic wrong..
Thread mainthread = new Thread(() => threadmain("string", "string", "string"));
mainthread.Start();
the above code works flawlessly but now i want to get a value back from my thread. to do that i searched on SO and found this code:
  object value = null; 
  var thread = new Thread(
    () =>
    {
      value = "Hello World"; 
    });
  thread.Start();
  thread.Join();
MessageBox.Show(value);
}
and i dont know how to combine the two.
the return value will be a string.
thank you for helping a newbie,i tried combining them but got errors due to my lack of experience
edit:
my thread:
public void threadmain(string url,string search, string regexstring) {
    using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
    {
        string allthreadusernames = "";
        string htmlCode = client.DownloadString(url);
        string[] htmlarray = htmlCode.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
        foreach (string line in htmlarray)
        {
            if (line.Contains(search))
            {
                var regex = new Regex(regexstring);
                var matches = regex.Matches(line);
                foreach (var singleuser in matches.Cast<Match>().ToList())
                {
                    allthreadusernames = allthreadusernames + "\n" + singleuser.Groups[1].Value;
                }
            }
        }
        MessageBox.Show(allthreadusernames);
    }
}
 
     
    