title: Multithreading # with functions with input parameters
body: <p>I use multithreading this way with no problem</p>
  
  <pre><code>namespace ConsoleApp1
  {
      class Program
      {
          static void Main(string[] args)
          {
              var t1 = new Thread(new ThreadStart(fun1));
              t1.Start();
              var t2 = new Thread(new ThreadStart(fun2));
              t2.Start();
              Console.ReadKey();
          }
          public static void fun1()
          {
              for (int i = 1; i &lt; 51; i++)
              {
                  Console.WriteLine($"i is {i}");
              }
          }
          public static void fun2()
          {
              for (int j = 1; j &lt; 51; j++)
              {
                  Console.WriteLine($"j is {j}");
              }
          }
      }
  
  }
  </code></pre>
  
  <p>like it is clear the function has no input argument.but when I want use a function with even one parameter I face an ERROR.</p>
  
  <pre><code>namespace ConsoleApp1
  {
      class Program
      {
          static void Main(string[] args)
          {
              var t1 = new Thread(new ThreadStart(fun1("str1")));
              t1.Start();
              var t2 = new Thread(new ThreadStart(fun2("str2")));
              t2.Start();
              Console.ReadKey();
          }
          public static void fun1(string x)
          {
              for (int i = 1; i &lt; 51; i++)
              {
                  Console.WriteLine($"i is {i}");
              }
          }
          public static void fun2(string y)
          {
              for (int j = 1; j &lt; 51; j++)
              {
                  Console.WriteLine($"j is {j}");
              }
          }
      }
  
  }
  </code></pre>
  
  <p>So please tell me how I can use a function with arguments(as input)in multithreading?</p>