-1
class Program
    {
        static void AddNumber1(ref int num)
        {
            num++;
        }
        static void AddNumber2(ref int num)
        {
            num++;
        }
        static void Main(string[] args)
        {
            //var mre = new ManualResetEvent(false);
            int num = 0;

            var th1 = new Thread(() =>
            {
                for (int i = 1; i <= 10; i++)
                {
                    AddNumber1(ref num);
                }
            });

            var th2 = new Thread(() =>
            {
                for (int i = 1; i <= 10; i++)
                {
                    AddNumber1(ref num);
                }
            });

            th1.Start();
            th2.Start();

            Console.WriteLine(num);

            Console.Write("Press any key to end :");
            Console.ReadKey(true);
        }
suyangzuo
  • 75
  • 2
  • 8
  • 1
    `Thread.Join` - https://stackoverflow.com/questions/2281926/c-sharp-waiting-for-multiple-threads-to-finish – mjwills Apr 20 '20 at 01:59

1 Answers1

0

You also could use Tasks instead of Threads like

var th1 = Task.Run(() =>
{
    for (int i = 1; i <= 10; i++)
    {
        AddNumber1(ref num);
    }
});

var th2 = Task.Run(() =>
{
    for (int i = 1; i <= 10; i++)
    {
        AddNumber1(ref num);
    }
});

Task.WaitAll(th1, th2);

Console.WriteLine(num);
Roman Kalinchuk
  • 718
  • 3
  • 14