메인 스레드 외에 별도의 스레드를 만들어 멀티 스레딩으로 동작하는 예제

2021. 1. 24. 12:12개발/C#

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Threading;

namespace Threading

{

  class Program

  {

    static void Main(string[] args)

    {

      DoTest();

    }

    static void DoTest()

    {

      // 메서드를 델리게이트로 Thread에 전달한다.

      // 새로운 Thread 실행

      Thread t1 = new Thread(Run);   

      t1.Start();

      Thread t2 = new Thread(() => Run());

      t2.Start();

     

      // 메인 Thread 실행

      Run();

    }

    static void Run()

    {

      Console.WriteLine("안녕하세요");

      Console.WriteLine("Thread# {0}: Bigin", Thread.CurrentThread.ManagedThreadId);

      Thread.Sleep(5000);

      Console.WriteLine("반갑습니다.");

      Console.WriteLine("Thread# {0}: End", Thread.CurrentThread.ManagedThreadId);

      Thread.Sleep(3000);

    }

  }

}