thread의 실행을 컨트롤하기 위해서 locker를 사용할 수 있다.
locker는 오로지 lock을 하는 용도로만 쓰인다.
아래 예제를 살펴보자.
using System;
using System.Threading;
namespace ThreadTest
{
class Program
{
static object locker = new object();
static void Main(string[] args)
{
new Thread(Go).Start();
lock (locker)
{
for (int i = 0; i < 500; i++)
{
Console.Write(".");
}
}
}
static void Go()
{
lock (locker)
{
for (int i = 0; i < 500; i++)
{
Console.Write("X");
}
}
}
}
}
위의 예제에서 locker는 lock 이외이 목적으로는 사용되지 않았다.
실행 결과 화면은 아래와 같다.
locker는 오로지 lock을 하는 용도로만 쓰인다.
아래 예제를 살펴보자.
using System;
using System.Threading;
namespace ThreadTest
{
class Program
{
static object locker = new object();
static void Main(string[] args)
{
new Thread(Go).Start();
lock (locker)
{
for (int i = 0; i < 500; i++)
{
Console.Write(".");
}
}
}
static void Go()
{
lock (locker)
{
for (int i = 0; i < 500; i++)
{
Console.Write("X");
}
}
}
}
}
위의 예제에서 locker는 lock 이외이 목적으로는 사용되지 않았다.
실행 결과 화면은 아래와 같다.
'Code > C#' 카테고리의 다른 글
| DateTime & TimeSpan : 두 시간 사이의 간격 계산하기 (0) | 2007.12.09 |
|---|---|
| Thread.Sleep() & TimeSpan.FromSeconds() (0) | 2007.12.09 |
| static field를 사용한 Thread (0) | 2007.12.09 |
| Thread에서 공동의 인스턴스 사용 예제 (0) | 2007.12.09 |
| Thread 간단하게 시작하기 예제 (0) | 2007.12.09 |