Share via


Platform::Agile 클래스

MashalingBehavior=Standard를 agile 개체로 나타냅니다. 이를 통해 런타임 스레딩 예외가 발생할 가능성이 매우 감소합니다. Agile<T> 를 사용하여 agile이 아닌 개체가 같거나 다른 스레드를 호출하거나 해당 스레드에서 호출될 수 있습니다. 자세한 내용은 스레딩 및 마샬링을 참조 하세요.

구문

template <typename T>
class Agile;

매개 변수

T
Agile이 아닌 클래스의 형식 이름입니다.

설명

Windows 런타임 대부분의 클래스는 민첩합니다. Agile 개체는 같거나 다른 스레드의 in-proc 또는 out-of-proc 개체를 호출하거나 해당 개체에서 호출될 수 있습니다. 개체가 agile이 아니면 agile인 Agile<T> 개체에서 agile이 아닌 개체를 래핑합니다. 그러고 나서 Agile<T> 개체를 마샬링할 수 있고 기본 agile이 아닌 개체를 사용할 수 있습니다.

Agile<T> 클래스는 네이티브 표준 C++ 클래스이고 agile.h가 필요합니다. Agile이 아닌 개체 및 Agile 개체의 컨텍스트를 나타냅니다. 컨텍스트는 agile 개체의 스레딩 모델 및 마샬링 동작을 지정합니다. 운영 체제에서는 컨텍스트를 사용하여 개체를 마샬링하는 방법을 결정합니다.

멤버

공용 생성자

속성 설명
Agile::Agile Agile 클래스의 새 인스턴스를 초기화합니다.
Agile::~Agile 소멸자 Agile 클래스의 현재 인스턴스를 제거합니다.

공용 메서드

이름 설명
Agile::Get 현재 Agile 개체가 나타내는 개체에 대한 핸들을 반환합니다.
Agile::GetAddressOf 현재 Agile 개체를 다시 초기화하고 핸들 주소를 T형식 개체에 반환합니다.
Agile::GetAddressOfForInOut 현재 Agile 개체가 나타내는 개체에 대한 핸들의 주소를 반환합니다.
Agile::Release 현재 Agile 개체의 기본 개체 및 컨텍스트를 삭제합니다.

Public 연산자

이름 설명
Agile::operator-> 현재 Agile 개체가 나타내는 개체에 대한 핸들을 검색합니다.
Agile::operator= 지정한 값을 현재 Agile 개체에 할당합니다.

상속 계층 구조

Object

Agile

요구 사항

지원되는 최소 클라이언트: Windows 8

지원되는 최소 서버: Windows Server 2012

네임스페이스: Platform

헤더: agile.h

Agile::Agile 생성자

Agile 클래스의 새 인스턴스를 초기화합니다.

구문

Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);

매개 변수

T
템플릿 형식 이름 매개 변수로 지정된 형식입니다.

object
이 생성자의 두 번째 버전에서 새 Agile 인스턴스를 초기화하기 위해 사용된 개체입니다. 이 생성자의 세 번째 버전에서 새 Agile 인스턴스에 복사된 개체입니다. 이 생성자의 네 번째 버전에서 새 Agile 인스턴스로 이동된 개체입니다.

설명

이 생성자의 첫 번째 버전은 기본 생성자입니다. 두 번째 버전은 object 매개 변수로 지정된 개체에서 새 Agile 인스턴스 클래스를 초기화합니다. 세 번째 버전은 복사 생성자입니다. 네 번째 버전은 이동 생성자입니다. 이 생성자는 예외를 throw할 수 없습니다.

Agile::~Agile 소멸자

Agile 클래스의 현재 인스턴스를 제거합니다.

구문

~Agile();

설명

이 소멸자는 현재 Agile 개체가 나타내는 개체도 해제합니다.

Agile::Get 메서드

현재 Agile 개체가 나타내는 개체에 대한 핸들을 반환합니다.

구문

T^ Get() const;

Return Value

현재 Agile 개체가 나타내는 개체에 대한 핸들입니다.

반환 값의 형식은 실제로 알려지지 않은 내부 형식입니다. 반환 값을 유지하는 편리한 방법은 형식 추론 키워드(keyword) 선언된 변수에 할당하는 auto 것입니다. 예: auto x = myAgileTvariable->Get();.

Agile::GetAddressOf 메서드

현재 Agile 개체를 다시 초기화하고 핸들 주소를 T형식 개체에 반환합니다.

구문

T^* GetAddressOf() throw();

매개 변수

T
템플릿 형식 이름 매개 변수로 지정된 형식입니다.

Return Value

T 형식의 개체에 대한 핸들의 주소입니다.

설명

이 작업은 형식 T개체의 현재 표현(있는 경우)을 해제하고, Agile 개체의 데이터 멤버를 다시 초기화하고, 현재 스레딩 컨텍스트를 획득한 다음, Agile이 아닌 개체를 나타낼 수 있는 핸들-개체 변수의 주소를 반환합니다. Agile 클래스 인스턴스가 개체를 나타내도록 하려면 할당 연산자(Agile::operator=)를 사용하여 Agile 클래스 인스턴스에 개체를 할당합니다.

Agile::GetAddressOfForInOut 메서드

현재 Agile 개체가 나타내는 개체에 대한 핸들의 주소를 반환합니다.

구문

T^* GetAddressOfForInOut()  throw();

매개 변수

T
템플릿 형식 이름 매개 변수로 지정된 형식입니다.

Return Value

현재 Agile 개체가 나타내는 개체에 대한 핸들의 주소입니다.

설명

이 작업은 현재 스레딩 컨텍스트를 가져온 다음 내부 개체에 대한 핸들의 주소를 반환합니다.

Agile::Release 메서드

현재 Agile 개체의 기본 개체 및 컨텍스트를 삭제합니다.

구문

void Release() throw();

설명

현재 Agile 개체의 기본 개체 및 컨텍스트가 삭제(있는 경우)된 다음 Agile 개체 값이 null로 설정됩니다.

Agile::operator-> 연산자

현재 Agile 개체가 나타내는 개체에 대한 핸들을 검색합니다.

구문

T^ operator->() const throw();

Return Value

현재 Agile 개체가 나타내는 개체에 대한 핸들입니다.

이 연산자는 실제로 알려지지 않은 내부 형식을 반환합니다. 반환 값을 유지하는 편리한 방법은 형식 추론 키워드(keyword) 선언된 변수에 할당하는 auto 것입니다.

Agile::operator= 연산자

지정한 개체를 현재 Agile 개체에 할당합니다.

구문

Agile<T> operator=( T^ object ) throw();
Agile<T> operator=( const Agile<T>& object ) throw();
Agile<T> operator=( Agile<T>&& object ) throw();
T^ operator=( IUnknown* lp ) throw();

매개 변수

T
템플릿 typename으로 지정된 형식입니다.

object
현재 Agile 개체로 복사되거나 이동된 개체 또는 개체의 핸들입니다.

lp
개체의 IUnknown 인터페이스 포인터입니다.

Return Value

T 형식의 개체에 대한 핸들입니다.

설명

첫 번째 버전의 할당 연산자는 참조 형식의 핸들을 현재 Agile 개체에 복사합니다. 두 번째 버전은 Agile 형식에 대한 참조를 현재 Agile 개체에 복사합니다. 세 번째 버전은 Agile 형식을 현재 Agile 개체로 이동합니다. 네 번째 버전은 COM 개체의 포인터를 현재 Agile 개체로 이동합니다.

할당 연산은 현재 Agile 개체의 컨텍스트를 자동으로 유지합니다.

참고 항목

플랫폼 네임스페이스