IAsyncAction 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
비동기 작업을 나타냅니다. 결과 개체가 없고 진행 중인 진행 상황을 보고하지 않는 많은 WinRT(Windows 런타임) 비동기 메서드의 반환 형식입니다.
public interface class IAsyncAction : IAsyncInfo
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.FoundationContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(1516535814, 33850, 19881, 134, 91, 157, 38, 229, 223, 173, 123)]
struct IAsyncAction : IAsyncInfo
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.FoundationContract), 65536)]
[Windows.Foundation.Metadata.Guid(1516535814, 33850, 19881, 134, 91, 157, 38, 229, 223, 173, 123)]
public interface IAsyncAction : IAsyncInfo
Public Interface IAsyncAction
Implements IAsyncInfo
- 파생
- 특성
- 구현
Windows 요구 사항
디바이스 패밀리 |
Windows 10 (10.0.10240.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.FoundationContract (v1.0에서 도입되었습니다.)
|
설명
IAsyncAction
결과 개체 또는 진행 중인 진행률을 전달하지 않는 모든 WinRT 비동기 메서드의 반환 형식입니다. 이는 300개가 넘는 WinRT API를 구성합니다. 진행률을 보고하지만 결과가 없는 API는 IAsyncActionWithProgress
앱 코드에서 IAsyncAction
반환하는 메서드를 사용하는 경우 일반적으로 IAsyncAction
반환 값에 직접 액세스하지 않습니다. 이는 거의 항상 언어별 대기 가능 구문을 사용하기 때문입니다. 이 경우 메서드의 명백한 반환 값은 void. 자세한 내용은 비동기 프로그래밍또는 WinRT 비동기 프로그래밍에 대한 언어별 가이드 중 하나를 참조하세요(C# 또는 Visual Basic비동기 API 호출, C++, JavaScript).
언어별 대기 가능 구문을 사용하지 않더라도 IAsyncAction
직접 사용하는 것은 일반적이지 않습니다. 각 언어에는 일반적으로 WinRT 인터페이스보다 사용하기 쉬운 확장 지점이 있습니다. JavaScript에는 WinJS.Promise및 IAsyncAction
작업변환되면 취소하고 완료 시 알림을 받는 것이 더 쉽습니다. C++/CX의 경우 동시성 런타임 사용하여 호출을 래핑하고 create_task사용할 수 있습니다. 즉, IAsyncAction
각 언어가 대기 가능한 구문 또는 비동기 프로그래밍 모델을 고유한 방식으로 지원하기 위해 프레임워크로 사용하는 런타임 수준 인프라로 간주될 수 있습니다.
일부 WinRT 비동기 메서드는 IAsyncAction
사용하는 대신 사용자 지정 작업 형식을 사용합니다(이름에 "작업"이 아닌 "작업"이 있을 수 있습니다). 예를 들어 SignOutUserOperationIAsyncAction
구현하는 WinRT 형식입니다.
SignOutUserOperation 형식은 SignOutUserAsync 메서드에 대한 사용자 지정 작업 반환 형식으로 사용됩니다.
.NET Task
반환하고 WinRT API에 전달할 IAsyncAction
필요한 메서드가 있는 경우 AsAsyncAction 확장 메서드를 사용할 수 있습니다.
C++/WinRT 확장 함수
메모
확장 함수는 특정 WinRT API에 대한 C++/WinRT 프로젝션 형식에 존재합니다. 예를 들어 winrt::Windows::Foundation::IAsyncAction
IAsyncAction
대한 C++/WinRT 프로젝션 형식입니다. 확장 함수는 실제 WinRT 형식의 ABI(애플리케이션 이진 인터페이스) 화면의 일부가 아니므로 WinRT API의 멤버로 나열되지 않습니다. 그러나 C++/WinRT 프로젝트 내에서 호출할 수 있습니다. Windows 런타임 API확장하는
void get() const;
작업이 완료되기를 동기적으로 기다립니다. 작업이 취소되거나 오류 상태가 되면 해당 예외를 throw합니다. 단일 스레드 아파트에서 호출해서는 안됩니다. 자세한 정보 및
AsyncStatus wait_for(TimeSpan const& timeout) const;
작업이 완료될 때까지 또는 지정된 시간 제한에 대해 동기적으로 대기합니다. 시간 제한이 경과하면
인터페이스 상속
IAsyncAction
구현하는 형식은 IAsyncInfo인터페이스 멤버도 구현합니다.
구현자에 대한 참고 사항
기존 메서드를 호출할 때와 마찬가지로 IAsyncInfo 직접 Task
/task
사용할 수 있지만 공용 메서드에 대한 WinRT 인터페이스 중 하나를 반환해야 합니다. 언어별 비동기 지원 형식(및 코드에서 일반적으로 사용할 수 있는 다른 많은 언어별 형식)은 WinRT 구성 요소의 공용 노출 영역에 사용할 수 없습니다.
속성
Completed |
작업이 완료되면 호출되는 대리자를 가져오거나 설정합니다. |
ErrorCode |
비동기 작업의 오류 조건을 설명하는 문자열을 가져옵니다. (다음에서 상속됨 IAsyncInfo) |
Id |
비동기 작업의 핸들을 가져옵니다. (다음에서 상속됨 IAsyncInfo) |
Status |
비동기 작업의 상태를 나타내는 값을 가져옵니다. (다음에서 상속됨 IAsyncInfo) |
메서드
Cancel() |
비동기 작업을 취소합니다. (다음에서 상속됨 IAsyncInfo) |
Close() |
비동기 작업을 닫습니다. (다음에서 상속됨 IAsyncInfo) |
GetResults() |
작업의 결과를 반환합니다. |