C# 멀티 쓰레드(쓰레드 조인, Thread Join)

홈 > 공유팁! > 프로그램 관련
프로그램 관련

C# 멀티 쓰레드(쓰레드 조인, Thread Join)

꽁스짱 0 1015

C# 멀티 쓰레드(쓰레드 조인, Thread Join)

 

쓰레드가 확실히 종료 되었는지를 살펴보기 위해서는 Thread.Join 메소드를 사용할 수 있는데 Thread.Join 메소드는 동기적으로 동작하므로 쓰레드가 종료 할 때까지 기다리게 된다. 만일 어떤 이유에서든지 쓰레드가 종료되지 않는 다면 무한정 기다릴 수 밖에 없다. Thread.Join 메소드 안에 1/1000초 단위로 파라미터를 전달 할 수 있는데 이것은 Join으로 붙은 쓰레드가 종료 될 때까지 얼마나 기다릴 수 있는 가에 대한 값이다. 만일 주어진 시간 안에 종료되면 true를 반환하고, 기다리기를 중지한다면 false 값을 반환한다.

아래의 예는 Join을 이용한 예제이다. first.Join() 부분을 주석으로 막은 후 다시 실행 해보자.

using System;

using System.Threading;

public class ThreadTest2

{

public int[] iArray = new int[20];

public void CollectData()

{

for(int i=0; i < 20; i++)

{

iArray[i] = i+1;

Console.Write(",");

Thread.Sleep(500);

}

}

}

class TestMain

{

[MTAThread]

public static void Main()

{

ThreadTest2 t = new ThreadTest2();

Thread first = new Thread(new ThreadStart(t.CollectData));

first.Start(); first.Join();

int sum=0;

for(int i=0; i<t.iArray.Length; i++)

{

sum += t.iArray[i];

}

Console.WriteLine();

Console.WriteLine("sum = {0}", sum);

}

}


0 Comments
제목