스레딩 개체 및 기능

업데이트: 2007년 11월

.NET Framework에서는 다중 스레드 응용 프로그램을 만들고 관리할 수 있는 여러 개체를 제공합니다. 관리되는 스레드는 Thread 클래스에서 나타냅니다. ThreadPool 클래스를 사용하면 다중 스레드 백그라운드 작업을 쉽게 만들고 관리할 수 있습니다. BackgroundWorker 클래스는 사용자 인터페이스와 상호 작용하는 작업에 대해 같은 역할을 수행합니다. Timer 클래스는 시간 간격에서 백그라운드 작업을 실행합니다.

이 외에도 .NET Framework 버전 2.0에 소개된 SemaphoreEventWaitHandle 클래스를 비롯하여 스레드의 작업을 동기화하는 여러 클래스가 있습니다. 이러한 클래스의 기능은 동기화 기본 형식 개요에 비교되어 있습니다.

단원 내용

  • 관리되는 스레드 풀
    스레드를 직접 관리하지 않아도 스레드에서 작업을 수행하도록 요청해 주는 ThreadPool 클래스에 대해 설명합니다.

  • 타이머
    Timer를 사용하여 특정 시간에 대리자가 호출되도록 지정하는 방법을 설명합니다.

  • Monitor
    Monitor 클래스를 사용하여 멤버에 대한 액세스를 동기화하거나 사용자 고유의 스레드 관리 유형을 빌드하는 방법을 설명합니다.

  • 대기 핸들
    이벤트 대기 핸들, 뮤텍스 및 세마포에 대한 추상 기본 클래스이며, 여러 개의 동기화 이벤트를 대기할 수 있게 하는 WaitHandle 클래스에 대해 설명합니다.

  • EventWaitHandle, AutoResetEvent 및 ManualResetEvent
    신호를 보내고 신호를 대기하여 스레드 작업을 동기화하는 데 사용되는 관리되는 이벤트 대기 핸들에 대해 설명합니다.

  • 뮤텍스
    Mutex를 사용하여 개체에 대한 액세스를 동기화하거나 사용자 고유의 동기화 메커니즘을 빌드하는 방법을 설명합니다.

  • 연동 작업
    Interlocked 클래스를 사용하여 값을 증가 또는 감소시킨 다음 해당 값을 단일 원자 연산에 저장하는 방법을 설명합니다.

  • 판독기 및 작성기 잠금
    단일 작성자/다수 독자 의미를 구현하는 잠금을 정의합니다.

  • 세마포
    Semaphore 개체와 이 개체를 사용하여 제한된 리소스에 대한 액세스를 제어하는 방법을 설명합니다.

  • 동기화 기본 형식 개요
    관리되는 스레드를 잠그고 동기화하기 위해 제공되는 .NET Framework 클래스의 기능을 비교합니다.

참조

  • Thread
    관리되는 스레드가 비관리 코드에서 파생되었는지 관리되는 응용 프로그램에서 만들어졌는지에 상관없이 관리되는 스레드를 나타내는 Thread 클래스의 참조 설명서를 제공합니다.

  • BackgroundWorker
    사용자 인터페이스와 상호 작용하여 사용자 인터페이스 스레드에서 발생한 이벤트를 통해 통신하는 백그라운드 작업을 설정합니다.

관련 단원

  • 비동기 파일 I/O
    I/O 비동기 완료 포트에서 스레드 풀을 사용하여 입력/출력 작업이 완료된 경우에만 처리를 요청하는 방법을 설명합니다.