다음을 통해 공유


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 개체가 나타내는 개체에 대한 핸들입니다.

반환 값의 형식은 실제로 알려지지 않은 내부 형식입니다. 반환 값을 유지하는 편리한 방법은 형식 추론 키워드로 선언된 변수에 할당하는 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 개체가 나타내는 개체에 대한 핸들입니다.

이 연산자는 실제로 알려지지 않은 내부 형식을 반환합니다. 반환 값을 유지하는 편리한 방법은 형식 추론 키워드로 선언된 변수에 할당하는 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 개체의 컨텍스트를 자동으로 유지합니다.

참고 항목

Platform 네임스페이스