개인적으로 중요하다고 생각되는 Thread 관련 처리입니다.
Thread 클래스 (System.Threading)
단순한 쓰레드 생성 및 실행입니다.
여기서 ThreadStart는 파라메터를 전달하지 않습니다.
using System.Threading;
namespace ConEx06
{
class Program
{
static void Main(string[] args)
{
Thread t1 = new Thread(new ThreadStart(Run)); //델리게이트 타입으로 전달
t1.Start();
}
//실행할 함수
public static void Run()
{
for(int i=0; i<10; i++)
{
Thread.Sleep(500);
Console.WriteLine("ex: {0}", i);
}
}
}
}
- 결과 -
- Thread클래스에 파라메터 전달위해서 ParameterizedThreadStart 사용하기
기본형식은 public delegate void ParameterizedThreadStart(object obj) 입니다.
namespace ConEx06
{
class Program
{
static void Main(string[] args)
{
Thread t1 = new Thread(new ParameterizedThreadStart(Square));
t1.Start(20.0);
Thread t2 = new Thread(() => Sum(100, 100, 100)); //람다식 이용해서 전달할수도...
t2.Start();
}
static void Square(object num) // 기본적으로 object로 전달
{
double res = (double)num * (double)num;
Console.WriteLine("Num: {0}, Square: {1}", (double)num, res);
}
static void Sum(int n1, int n2, int n3)
{
int res = n1 + n2 + n3;
Console.WriteLine(res);
}
}
}
- 결과 -
'프로그래밍&IT > C#' 카테고리의 다른 글
System.Environment 클래스관련해서 (0) | 2015.12.17 |
---|---|
Thread 관련 간단 정리2. 멀티스레드 관련 - ThreadPool (0) | 2015.12.13 |
Params 한정자, 매개변수 배열 (0) | 2015.09.07 |
[C#] Cross Threading 처리 : InvokeRequired 속성 (0) | 2015.05.30 |
System.Threading 네임 스페이스 및 Thread클래스 관련 (0) | 2015.04.11 |