스레딩 및 비동기 프로그래밍
스레딩 및 비동기 프로그래밍을 사용하면 앱이 병렬 스레드에서 비동기적으로 작업을 수행할 수 있습니다.
앱은 스레드 풀을 사용하여 병렬 스레드에서 비동기적으로 작업을 수행할 수 있습니다. 스레드 풀은 스레드 집합을 관리하고 큐를 사용하여 작업 항목을 사용할 수 있게 되면 스레드에 할당합니다. 스레드 풀은 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에서 비동기 메서드를 사용하는 방법에 대해 설명합니다. |
정기 작업 항목 만들기 | 주기적으로 반복되는 작업 항목을 만드는 방법을 알아봅니다. |
스레드 풀에 작업 항목 제출 | 스레드 풀에 작업 항목을 제출하여 별도의 스레드에서 작업을 수행하는 방법을 알아봅니다. |
타이머를 사용하여 작업 항목 제출 | 타이머가 경과한 후 실행되는 작업 항목을 만드는 방법을 알아봅니다. |