※프로세스(Process)
1개의 응용프로그램 실행 인스턴스()
쓰레드
쓰레드
※쓰레드(Thread)
1개의 프로세스내에서 실행되는 흐름(작업)
class MultiMediaPlayer
{
public static void Main()
{
기본 쓰레드
동영상실행
소리실행
}
}
※쓰레드의 실행원리
※쓰레드 생성
System.Threading 네임스페이스
└→Thread 클래스
└→┌Thread(Thread Start)*
└Thread(Parameterd Thread Start)*
delegate void ThreadStart(???);
ThreadStart ts = new ThreadStart(메소드명);//C#2.0
= new ThreadStart(new ThreadStart(메소드명));//C#1.0
= 메소드;
쓰레드 실행
Start(); : Thread Start 대리자를 통해 실행
Start(Object o); Parametered ThreadStart 대리자를 통해 실행
정리(시작->실행)
class MultiMediaPlayer
{
public static void Main()
{
내용//그냥 실행시 여기서 대기하게됨
Thread t1 = new Thread(mp3player);
t1.Start();
Thread t2 = new Thread(Animation);
t2.Start();
}
public void mp3Player()//t1
{
}
public void Animation()//t2
{
}
}
윈도우 프로그램에서 쓰레드 작업
기본 쓰레드(=생성자 쓰레드)
역할:(폼을 생성한다//컨트롤을 생성) + (이벤트를 처리)
작업자 쓰레드
역할컨트롤의 상태를 변경시키는 역할 정상적이지 않은 케이스
따라서 새로운 쓰레드는 메세지큐를 통해 처리
작업자는 Enqueue
기본은 Dequeue
Lock는 값형은 불가, 참조형만 가능
//값을 포함한 개체를 잠가서 처리
1개의 응용프로그램 실행 인스턴스()
쓰레드
쓰레드
※쓰레드(Thread)
1개의 프로세스내에서 실행되는 흐름(작업)
class MultiMediaPlayer
{
public static void Main()
{
기본 쓰레드
동영상실행
소리실행
}
}
※쓰레드의 실행원리
※쓰레드 생성
System.Threading 네임스페이스
└→Thread 클래스
└→┌Thread(Thread Start)*
└Thread(Parameterd Thread Start)*
delegate void ThreadStart(???);
ThreadStart ts = new ThreadStart(메소드명);//C#2.0
= new ThreadStart(new ThreadStart(메소드명));//C#1.0
= 메소드;
쓰레드 실행
Start(); : Thread Start 대리자를 통해 실행
Start(Object o); Parametered ThreadStart 대리자를 통해 실행
정리(시작->실행)
class MultiMediaPlayer
{
public static void Main()
{
내용//그냥 실행시 여기서 대기하게됨
Thread t1 = new Thread(mp3player);
t1.Start();
Thread t2 = new Thread(Animation);
t2.Start();
}
public void mp3Player()//t1
{
}
public void Animation()//t2
{
}
}
윈도우 프로그램에서 쓰레드 작업
기본 쓰레드(=생성자 쓰레드)
역할:(폼을 생성한다//컨트롤을 생성) + (이벤트를 처리)
작업자 쓰레드
역할컨트롤의 상태를 변경시키는 역할 정상적이지 않은 케이스
따라서 새로운 쓰레드는 메세지큐를 통해 처리
작업자는 Enqueue
기본은 Dequeue
Lock는 값형은 불가, 참조형만 가능
//값을 포함한 개체를 잠가서 처리