C#/수업내용

03/29 Thread 복습 3 (상태)

박준희 2021. 3. 29. 23:49

 

스레드의 Name속성에 이름을 설정하거나 가져올 수 있다.

스레드의 ThreadState속성으로 스레드의 동작 상태를 가져올 수 있다.

 

Program.cs

namespace Study07
{
    class Program
    {
        static void Main(string[] args)
        {
            new App();
        }
    }
}

 

App.cs

using System;
using System.Threading;

namespace Study07
{
    public class App
    {
        Thread thread1;
        Thread thread2;
        public App()
        {
            thread1 = new Thread(() =>
            {
                //Running : 스레드 시작후 동작 상태
                Console.WriteLine(thread1.ThreadState);
                Thread.Sleep(100);
                thread1.Abort();
                Thread.Sleep(100);
            });
            thread1.Name = "Thread1";
            //Unstarted : 스레드 생성후 Start되기전 상태 
            Console.WriteLine(thread1.ThreadState);
            thread1.Start();

            thread2 = new Thread(() =>
            {
                while(true)
                {
                    Thread.Sleep(1000);
                    Console.WriteLine(thread1.ThreadState);
                    //Stopped : Abot메서드 호출시 되는 상태 (중지된 스레드의 상태)
                }
            });
            thread2.Start();
        }
        
        
    }
}