기계는 거짓말하지 않는다

C# Thread, Thread 매개변수 본문

C#

C# Thread, Thread 매개변수

KillinTime 2022. 4. 16. 00:44

System.Threading.Thread Class

스레드를 만들고 제어할 수 있다.

Critical Section에 대한 관리는 신중해야 하며 Mutex, Semaphore를 사용할 수 있다.

매개변수가 없는 함수 스레드 실행

using System;
using System.Threading;

public class ThreadExample
{
    public static void PrintNum()
    {
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine("Thread {0}", i);
            Thread.Sleep(100);
        }
    }

    public static void Main()
    {
        Console.WriteLine("Thread Start");
        Thread t = new Thread(new ThreadStart(PrintNum));
        Thread t2 = new Thread(new ThreadStart(PrintNum));

        t.Start();
        t2.Start();

        for (int i = 0; i < 4; i++)
        {
            Console.WriteLine("Main {0}", i);
            Thread.Sleep(100);
        }

        t.Join();
        t2.Join();
        Console.WriteLine("Program End");
    }
}

매개변수가 존재하는 함수 스레드 실행

ParameterizedThreadStart를 사용. 매개변수 자료형은 object로 받는다.

using System;
using System.Threading;

public class ThreadExample
{
    public static void PrintNum(object thread_name)
    {
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine("{0}: {1}", (string)thread_name, i);
            Thread.Sleep(100);
        }
    }

    public static void Main()
    {
        Console.WriteLine("Thread Start");
        Thread t = new Thread(new ParameterizedThreadStart(PrintNum));
        Thread t2 = new Thread(new ParameterizedThreadStart(PrintNum));

        t.Start("Thread_1");
        t2.Start("Thread_2");

        for (int i = 0; i < 4; i++)
        {
            Console.WriteLine("Main {0}", i);
            Thread.Sleep(100);
        }

        t.Join();
        t2.Join();
        Console.WriteLine("Program End");
    }
}

 

'C#' 카테고리의 다른 글

C# try, catch, finally Exception 처리  (0) 2022.05.06
C# Windows Forms 이벤트 등록  (0) 2021.07.16
C# is, as, typeof 키워드  (0) 2021.07.16
C# partial class  (0) 2021.07.15
C# Windows Forms MenuStrip Check  (0) 2021.07.13
Comments