Classe Platform::AgilePlatform::Agile Class

Representa um objeto que tem um MashalingBehavior=Standard como um objeto Agile, que reduz a possibilidade de exceções de threading do tempo de execução.Represents an object that has a MashalingBehavior=Standard as an agile object, which greatly reduces the chances for runtime threading exceptions. O Agile<T> permite que o objeto não Agile chame ou seja chamado do mesmo thread ou de um thread diferente.The Agile<T> enables the non-agile object to call, or be called from, the same or a different thread. Para obter mais informações, consulte de Threading e Marshaling.For more information, see Threading and Marshaling.

SintaxeSyntax

template <typename T>  
class Agile;  

ParâmetrosParameters

TT
O typename para a classe não Agile.The typename for the non-agile class.

ComentáriosRemarks

A maioria das classes em tempo de execução do Windows é ágil.Most of the classes in the Windows Runtime are agile. Um objeto Agile pode chamar ou ser chamado por um objeto em processo ou fora de processo no mesmo thread ou em um thread diferente.An agile object can call, or be called by, an in-proc or out-of-proc object in the same or a different thread. Se um objeto não for Agile, encapsule o objeto não Agile em um objeto Agile<T> , que seja Agile.If an object is not agile, wrap the non-agile object in a Agile<T> object, which is agile. Em seguida, pode-se realizar marshaling do objeto Agile<T> e o objeto não Agile subjacente pode ser usado.Then the Agile<T> object can be marshaled, and the underlying non-agile object can be used.

A classe Agile<T> é uma classe do C++ nativa e padrão e requer o agile.h.The Agile<T> class is a native, standard C++ class and requires agile.h. Representa o contextodo objeto não Agile e do objeto Agile.It represents the non-agile object and the Agile object's context. O contexto especifica um modelo de threading e comportamento de marshaling de um objeto Agile.The context specifies an agile object's threading model and marshaling behavior. O sistema operacional usa o contexto para determinar como realizar marshaling de um objeto.The operating system uses the context to determine how to marshal an object.

MembrosMembers

Construtores PúblicosPublic Constructors

NomeName DescriçãoDescription
Agile::AgileAgile::Agile Inicializa uma nova instância da classe Agile.Initializes a new instance of the Agile class.
Destruidor Agile::~AgileAgile::~Agile Destructor Destrói a instância atual da classe Agile.Destroys the current instance of the Agile class.

Métodos públicosPublic Methods

NomeName DescriçãoDescription
Agile::GetAgile::Get Retorna um identificador para o objeto representado pelo objeto Agile atual.Returns a handle to the object that is represented by the current Agile object.
Agile::GetAddressOfAgile::GetAddressOf Reinicializa o objeto Agile atual e retorna o endereço de um identificador para um objeto do tipo T.Reinitializes the current Agile object, and then returns the address of a handle to an object of type T.
Agile::GetAddressOfForInOutAgile::GetAddressOfForInOut Retorna o endereço de um identificador para o objeto representado pelo objeto Agile atual.Returns the address of a handle to the object represented by the current Agile object.
Agile::ReleaseAgile::Release Descarta o objeto e o contexto subjacentes do objeto Agile atual.Discards the current Agile object's underlying object and context.

Operadores públicosPublic Operators

NomeName DescriçãoDescription
Agile::operator->Agile::operator-> Recupera um endereço de um identificador para o objeto representado pelo objeto Agile atual.Retrieves a handle to the object represented by the current Agile object.
Agile::operator=Agile::operator= Atribui o objeto especificado ao objeto Agile atual.Assigns the specified value to the current Agile object.

Hierarquia de herançaInheritance Hierarchy

Object

Agile

RequisitosRequirements

Suporte mínimo de cliente: Windows 8Minimum supported client: Windows 8

Suporte mínimo de servidor: Windows Server 2012Minimum supported server: Windows Server 2012

Namespace: PlatformNamespace: Platform

Cabeçalho: agile.hHeader: agile.h

Construtor Agile:: AgileAgile::Agile Constructor

Inicializa uma nova instância da classe Agile.Initializes a new instance of the Agile class.

SintaxeSyntax


 Agile();  

Agile(T^ object);   

Agile(const Agile<T>& object);  

Agile(Agile<T>&& object);  

ParâmetrosParameters

T
Um tipo especificado pelo parâmetro typename do modelo.A type specified by the template typename parameter.

object
Na segunda versão desse construtor, um objeto usado para inicializar uma nova instância de Agile.In the second version of this constructor, an object used to initialize a new Agile instance. Na terceira versão, o objeto que é copiado para a nova instância de Agile.In the third version, the object that is copied to the new Agile instance. Na quarta versão, o objeto que é movido para a nova instância de Agile.In the fourth version, the object that is moved to the new Agile instance.

ComentáriosRemarks

A primeira versão desse construtor é o construtor padrão.The first version of this constructor is the default constructor. A segunda versão inicializa a nova classe da instância de Agile do objeto especificado pelo parâmetro object.The second version initializes new Agile instance class from the object specified by the object parameter. A terceira versão é o construtor de cópia.The third version is the copy constructor. A quarta versão é o construtor de movimento.The fourth version is the move constructor. Esse construtor não pode gerar exceções.This constructor cannot throw exceptions.

Agile:: ~ Agile destruidorAgile::~Agile Destructor

Destrói a instância atual da classe Agile.Destroys the current instance of the Agile class.

SintaxeSyntax


~Agile();  

ComentáriosRemarks

Este destruidor também libera o objeto representado pelo objeto Agile atual.This destructor also releases the object represented by the current Agile object.

Método Agile:Agile::Get Method

Retorna um identificador para o objeto representado pelo objeto Agile atual.Returns a handle to the object that is represented by the current Agile object.

SintaxeSyntax


   T^ Get() const  
;  

Valor de retornoReturn Value

Um identificador para o objeto representado pelo objeto Agile atual.A handle to the object that is represented by the current Agile object.

O tipo do valor retornado é, de fato, um tipo interno não revelado.The type of the return value is actually an undisclosed internal type. Uma maneira conveniente de manter o valor retornado é atribuí-lo a uma variável que é declarada com o automática palavra-chave de dedução de tipo.A convenient way to hold the return value is to assign it to a variable that is declared with the auto type deduction keyword. Por exemplo, auto x = myAgileTvariable->Get();.For example, auto x = myAgileTvariable->Get();.

Método getaddressofAgile::GetAddressOf Method

Reinicializa o objeto Agile atual e retorna o endereço de um identificador para um objeto do tipo T.Reinitializes the current Agile object, and then returns the address of a handle to an object of type T.

SintaxeSyntax


T^* GetAddressOf()   
throw();  

ParâmetrosParameters

T
Um tipo especificado pelo parâmetro typename do modelo.A type specified by the template typename parameter.

Valor de retornoReturn Value

O endereço de um identificador para um objeto do tipo T.The address of a handle to an object of type T.

ComentáriosRemarks

Esta operação libera a representação atual de um objeto do tipo T, se houver; reinicializa membros de dados do objeto Agile; adquire o contexto de threading atual; e, em seguida, retorna o endereço de uma variável de objeto de identificador que pode representar um objeto não agile.This operation releases the current representation of a object of type T, if any; reinitializes the Agile object's data members; acquires the current threading context; and then returns the address of a handle-to-object variable that can represent a non-agile object. Para fazer com que uma instância da classe Agile representar um objeto, use o operador de atribuição (Agile:: Operator =) para atribuir o objeto para a instância da classe Agile.To cause an Agile class instance to represent an object, use the assignment operator (Agile::operator=) to assign the object to the Agile class instance.

Método getaddressofforinoutAgile::GetAddressOfForInOut Method

Retorna o endereço de um identificador para o objeto representado pelo objeto Agile atual.Returns the address of a handle to the object represented by the current Agile object.

SintaxeSyntax


T^* GetAddressOfForInOut()  throw();  

ParâmetrosParameters

T
Um tipo especificado pelo parâmetro typename do modelo.A type specified by the template typename parameter.

Valor de retornoReturn Value

O endereço de um identificador para o objeto representado pelo objeto Agile atual.The address of a handle to the object represented by the current Agile object.

ComentáriosRemarks

Esta operação adquire o contexto de threading atual e retorna o endereço de um identificador para o objeto subjacente.This operation acquires the current threading context and then returns the address of a handle to the underlying the object.

Método Agile:Agile::Release Method

Descarta o objeto e o contexto subjacentes do objeto Agile atual.Discards the current Agile object's underlying object and context.

SintaxeSyntax


void Release() throw();  

ComentáriosRemarks

O objeto e o contexto subjacentes do objeto Agile atual serão descartados, caso existam, e o valor do objeto Agile será definido como nulo.The current Agile object's underlying object and context are discarded, if they exist, and then the value of the Agile object is set to null.

Agile:: Operator -> operadorAgile::operator-> Operator

Recupera um endereço de um identificador para o objeto representado pelo objeto Agile atual.Retrieves a handle to the object represented by the current Agile object.

SintaxeSyntax


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

Valor de retornoReturn Value

Um identificador para o objeto representado pelo objeto Agile atual.A handle to the object represented by the current Agile object.

Esse operador retorna, na verdade, um tipo interno não revelado.This operator actually returns an undisclosed internal type. Uma maneira conveniente de manter o valor retornado é atribuí-lo a uma variável que é declarada com o automática palavra-chave de dedução de tipo.A convenient way to hold the return value is to assign it to a variable that is declared with the auto type deduction keyword.

Agile:: Operator operador =Agile::operator= Operator

Atribui o objeto especificado ao objeto Agile atual.Assigns the specified object to the current Agile object.

SintaxeSyntax


   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();  

ParâmetrosParameters

T
O tipo especificado pelo typename do modelo.The type specified by the template typename.

object
O objeto ou o identificador de um objeto que é copiado ou movido para o objeto Agile atual.The object or handle to an object that is copied or moved to the current Agile object.

lp
O ponteiro de interface de IUnknown de um objeto.The IUnknown interface pointer of a object.

Valor de retornoReturn Value

Um identificador para um objeto do tipo TA handle to an object of type T

ComentáriosRemarks

A primeira versão do operador de atribuição copia um identificador para um tipo de referência para o objeto Agile atual.The first version of the assignment operator copies a handle to a reference type to the current Agile object. A segunda versão copia uma referência a um tipo Agile para o objeto Agile atual.The second version copies a reference to an Agile type to the current Agile object. A terceira versão move um tipo Agile para o objeto Agile atual.The third version moves an Agile type to the current Agile object. A quarta versão move um ponteiro para um objeto COM para o objeto Agile atual.The fourth version moves a pointer to a COM object to the current Agile object.

A operação de atribuição persiste automaticamente o contexto do objeto Agile atual.The assignment operation automatically persists the context of the current Agile object.

Consulte tambémSee Also

Namespace de plataformaPlatform Namespace