Thead 의 IsBackground 속성

using System;
using System.Threading;

namespace ConsoleApp4
{
     class Program
     {
         private static int count;
         static void Main(string[] args)
         {
             Console.WriteLine(“Hello World!”);
             
count = 0;

             Thread th;
             ThreadStart thStart = new ThreadStart(threadfunc);

            // IsBackground  가 false 이면 포그라운드 쓰레드(Foreground thread) ,
            // IsBackground 가 True  이면 백그라인드 쓰레드(Background thread) 라고한다.

             // th.IsBackground = true;   

             // 메인 함수 실행이 종단점에 도달, 메인이 종료되면 쓰레드가  같이 종료함(쓰레드가 무한이더라도)

             // th.IsBackground = false; ★ 디폴트   
             // 메인 함수 실행이 종단점에 도달하더라도, 쓰레드가 작업이 끝날때까지 종료되지 않으며, 계속 유지함(메인만종료) 

    

             th = new Thread(thStart);
             th.IsBackground = true;

             th.Start();
         }

         public static void threadfunc()
         {
             while(true)
             {
                         Console.WriteLine((count++).ToString());
             }
         }
    }
}

// th.IsBackground = false;     ( ★ IsBackground  기본값은 false)
// 메인 함수 실행이 종단점에 도달하더라도, 쓰레드가 종료되지 않으면 계속 유지함


// th.IsBackground = true;

// 메인 함수 실행이 종료 되어, 쓰레드가 무한루프트지만 같이 종료됨

Posted in C#

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다