it-100



WPF C# - 스레드 Thread - 네임스페이스 ( Threading/ Thread )


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
namespace System.Windows.Threading
{
    //
    // 요약:
    //     호출 가능한 작업 통해 우선 순위에 설명 된 System.Windows.Threading.Dispatcher합니다.
    public enum DispatcherPriority
    {
        //
        // 요약:
        //     열거형 값은-1입니다. 잘못 된 우선 순위입니다.
        Invalid = -1,
        //
        // 요약:
        //     열거형 값은 0입니다. 작업이 처리 되지 않습니다.
        Inactive = 0,
        //
        // 요약:
        //     열거형 값은 1입니다. 시스템이 유휴 상태일 때 작업이 처리 됩니다.
        SystemIdle = 1,
        //
        // 요약:
        //     열거형 값은 2입니다. 응용 프로그램이 유휴 상태일 때 작업이 처리 됩니다.
        ApplicationIdle = 2,
        //
        // 요약:
        //     열거형 값은 3입니다. 백그라운드 작업이 완료 된 후 작업이 처리 됩니다.
        ContextIdle = 3,
        //
        // 요약:
        //     열거형 값은 4입니다. 다른 모든 비 유휴 작업이 완료 된 후 작업이 처리 됩니다.
        Background = 4,
        //
        // 요약:
        //     열거형 값은 5입니다. 작업이 동일한 우선 입력으로 처리 됩니다.
        Input = 5,
        //
        // 요약:
        //     열거형 값은 6입니다. 레이아웃 및 렌더링 끝나면 되기 직전 입력된 우선 순위에서 항목을 처리 하는 작업이 처리 됩니다. 특히이 Loaded
        //     이벤트를 발생 시킬 때 사용 됩니다.
        Loaded = 6,
        //
        // 요약:
        //     열거형 값은 7입니다. 렌더링으로 동일한 우선 순위 처리 하는 작업입니다.
        Render = 7,
        //
        // 요약:
        //     열거형 값은 8입니다. 작업이는 데이터 바인딩과 동일한 우선 순위 처리 됩니다.
        DataBind = 8,
        //
        // 요약:
        //     열거형 값은 9입니다. 작업은 보통 우선 순위로 처리 됩니다. 일반적인 응용 프로그램 우선 순위입니다.
        Normal = 9,
        //
        // 요약:
        //     열거형 값은 10입니다. 작업은 다른 비동기 작업 보다 먼저 처리 됩니다. 가장 높은 우선 순위입니다.
        Send = 10
    }
}
cs


싱글코어(코어 1개), 듀얼(코어 2개), 트리플코어(코어 3개), 쿼드코어(코어 4개), 헥사코어(코어 6개), 옥타코어(코어 8개)

무엇일까? CPU(코어)의 개수이다.

한 PC 에 CPU는 한개 들었지만, 해당 CPU에서 연산처리를 하는 코어라는 것이 개수가 다 다른것이다.


하나의 일을 하나의 코어에게 할당해 줄 수도 있고, 하나의 일을 여러개의 코어에게 같이 할당하여 더 빠르게 처리할 수도 있다.


이와 같은 것이 스레드이다.

흔희들 작업 스레드라는 표현을 많이 한다.

메인 스레드와 새로 생성되는 스레드간에 상호 작용이 원활하도록 해주는 것이다.

프로그램에서도 역시나 세세하게 다 설정해 줄 수 있다.

뒤늦게 나온 개념 만큼이나 다소 복잡하지만 배워두면 분명 더 효율적인 프로그래밍이 가능할거 같아서 메모해 둔다.


위 코드는 WPF의 Threading 의 네임스페이스 이다.

예제는 다음 페이지를 참고해주세요.

각각의 스레드에 적절한 할당을 하기 위해 정의를 내린 부분이니 반드시 알아두고 사용하자^^