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