투케이2K

111. (C#/NET) [Mac Os] [문법] Thread Join 사용해 스레드 동작 Block (블록) 수행 대기 처리 실시 본문

C샵 (NET)

111. (C#/NET) [Mac Os] [문법] Thread Join 사용해 스레드 동작 Block (블록) 수행 대기 처리 실시

투케이2K 2024. 3. 30. 10:08
반응형

[개발 환경 설정]

개발 언어 : C# / NET

 

[소스 코드]

using System;
using System.Collections;
using System.Data;
using System.Diagnostics.Tracing;
using System.Text;
using System.Text.Json.Serialization;
using System.Web;
using System.Text.Json;
using System.Text.Encodings.Web;
using System.Text.Unicode;
using System.Text.RegularExpressions;
using System.Timers;
using System.Threading;
using System.Diagnostics;

namespace testProject {

    // [프로그램 동작 클래스]
    class Program {

        // [메소드 수행]
        static void Main(string[] args){

            // [스레드 생성]
            Thread thread = new Thread(callback);

            // [스레드 동작 수행]
            thread.Start();

            // [스레드 수행]
            for (int m=1; m<=2; m++){

                Console.WriteLine($"Main : {m}");

                // [스레드 일정 정지]
                Thread.Sleep(1000); // [1초]
            }

            // [스레드 블락 = 대기 수행]
            thread.Join(); 

            // [로그 출력]
            Console.WriteLine($"");
            Console.WriteLine($"------------------------------------------");
            Console.WriteLine($"[Main] : [Log]");
            Console.WriteLine($"------------------------------------------");
            Console.WriteLine($"Thread End");
            Console.WriteLine($"------------------------------------------");
            Console.WriteLine($"");

        }


        // [타이머 동작 메소드]
        static void callback(){

            for (int i=1; i<=2; i++){

                Console.WriteLine($"Callback : {i}");

                // [스레드 일정 정지]
                Thread.Sleep(1000); // [1초]
            }

            Console.WriteLine($"");
            Console.WriteLine($"------------------------------------------");
            Console.WriteLine($"[Callback] : [Log]");
            Console.WriteLine($"------------------------------------------");
            Console.WriteLine($"Thread End");
            Console.WriteLine($"------------------------------------------");
            Console.WriteLine($"");
        }

    }

}
 

[결과 출력]


 
반응형
Comments