다음을 통해 공유


스레딩 및 비동기 프로그래밍

스레딩 및 비동기 프로그래밍을 사용하면 앱이 병렬 스레드에서 비동기적으로 작업을 수행할 수 있습니다.

앱은 스레드 풀을 사용하여 병렬 스레드에서 비동기적으로 작업을 수행할 수 있습니다. 스레드 풀은 스레드 집합을 관리하고 큐를 사용하여 작업 항목을 사용할 수 있게 되면 스레드에 할당합니다. 스레드 풀은 UI를 차단하지 않고 확장된 작업을 수행하는 데 사용할 수 있기 때문에 Windows 런타임에서 사용할 수 있는 비동기 프로그래밍 패턴과 유사하지만 스레드 풀은 비동기 프로그래밍 패턴보다 더 많은 제어를 제공하며 이를 사용하여 여러 작업 항목을 병렬로 완료할 수 있습니다. 스레드 풀을 사용하여 다음을 수행할 수 있습니다.

  • 작업 항목을 제출하고, 우선 순위를 제어하고, 작업 항목을 취소합니다.

  • 타이머 및 정기 타이머를 사용하여 작업 항목을 예약합니다.

  • 중요한 작업 항목에 대한 리소스를 따로 둡니다.

  • 명명된 이벤트 및 세마포에 대한 응답으로 작업 항목을 실행합니다.

스레드 풀은 스레드를 만들고 삭제하는 오버헤드를 줄이기 때문에 스레드를 관리하는 데 더 효율적입니다. 즉, 여러 CPU 코어에서 스레드를 최적화할 수 있는 액세스 권한이 있으며, 앱 간에 그리고 백그라운드 작업이 실행되는 경우 스레드 리소스의 균형을 맞출 수 있습니다. 스레드 관리의 메커니즘 대신 작업을 수행하는 코드를 작성하는 데 집중하기 때문에 기본 제공 스레드 풀을 사용하는 것이 편리합니다.

토픽 설명
비동기 프로그래밍(UWP 앱) UWP(유니버설 Windows 플랫폼)의 비동기 프로그래밍과 C#, Microsoft Visual Basic .NET, Visual C++ 구성 요소 확장(C++/CX) 및 JavaScript의 표현에 대해 설명합니다.
C++/CX의 비동기 프로그래밍(UWP 앱) 이 문서에서는 ppltasks.h의 concurrency 네임스페이스에 정의된 task 클래스를 사용하여 C++/CX에서 비동기 메서드를 사용하는 권장 방법을 설명합니다.
스레드 풀 사용 모범 사례 이 항목에서는 스레드 풀 작업에 대한 모범 사례를 설명합니다.
C# 또는 Visual Basic에서 비동기 API 호출 UWP(유니버설 Windows 플랫폼)에는 많은 비동기 API가 포함되어 있어 앱이 장시간 걸릴 수 있는 작업을 수행할 때 응답성을 유지할 수 있습니다. 이 항목에서는 C# 또는 Microsoft Visual Basic의 UWP에서 비동기 메서드를 사용하는 방법에 대해 설명합니다.
정기 작업 항목 만들기 주기적으로 반복되는 작업 항목을 만드는 방법을 알아봅니다.
스레드 풀에 작업 항목 제출 스레드 풀에 작업 항목을 제출하여 별도의 스레드에서 작업을 수행하는 방법을 알아봅니다.
타이머를 사용하여 작업 항목 제출 타이머가 경과한 후 실행되는 작업 항목을 만드는 방법을 알아봅니다.