Share via


Platform::Agile, classe

Représente un objet qui a MashalingBehavior=Standard en tant qu’objet agile, ce qui réduit considérablement les risques d’exception de thread d’exécution. Agile<T> permet à l’objet non agile d’appeler ou d’être appelé par le même thread ou un thread différent. Pour plus d’informations, consultez Threading et Marshaling.

Syntaxe

template <typename T>
class Agile;

Paramètres

T
Nom de type de la classe non agile.

Notes

La plupart des classes dans Windows Runtime sont agiles. Un objet agile peut appeler, ou être appelé par, un objet intra-processus ou hors processus dans le même thread ou un autre thread. Si un objet n’est pas agile, encapsulez l’objet non agile dans un objet Agile<T> agile. L’objet Agile<T> peut ensuite être marshalé, et l’objet non agile sous-jacent peut être utilisé.

La classe Agile<T> est une classe C++ native standard qui nécessite agile.h. Elle représente l’objet non agile et le contextede l’objet Agile. Le contexte spécifie le modèle de thread et le comportement de marshaling d’un objet agile. Le système d’exploitation utilise le contexte pour déterminer comment marshaler un objet.

Membres

Constructeurs publics

Nom Description
Agile ::Agile Initialise une nouvelle instance de la classe Agile.
Agile::~Agile, destructeur Détruit l'instance actuelle de la classe Agile.

Méthodes publiques

Nom Description
Agile::Get Retourne un handle vers l’objet représenté par l’objet Agile actif.
Agile::GetAddressOf Réinitialise l’objet Agile actif, puis retourne l’adresse d’un handle vers un objet de type T.
Agile::GetAddressOfForInOut Retourne l'adresse d'un handle vers l'objet représenté par l'objet Agile actif.
Agile::Release Ignore l'objet et le contexte sous-jacent de l'objet Agile actif.

Opérateurs publics

Nom Description
Agile ::operator-> Récupère un handle vers l’objet représenté par l’objet Agile actif.
Agile::operator= Assigne la valeur spécifiée à l’objet Agile actif.

Hiérarchie d'héritage

Object

Agile

Spécifications

Client minimum pris en charge : Windows 8

Serveur minimum pris en charge : Windows Server 2012

Espace de noms : Platform

En-tête : agile.h

Agile::Agile, constructeur

Initialise une nouvelle instance de la classe Agile.

Syntaxe

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

Paramètres

T
Type spécifié par le paramètre de nom de type de modèle.

object
Dans la deuxième version de ce constructeur, objet utilisé pour initialiser une nouvelle instance Agile. Dans la troisième version, l'objet qui est copié vers la nouvelle instance Agile. Dans la quatrième version, objet qui est déplacé vers la nouvelle instance Agile.

Notes

La première version de ce constructeur est le constructeur par défaut. La deuxième version initialise la classe d'instance Agile de l'objet spécifié par le paramètre object. La troisième version est le constructeur de copie. La quatrième version est le constructeur de déplacement. Ce constructeur ne peut pas lever d'exceptions.

Agile::~Agile, destructeur

Détruit l'instance actuelle de la classe Agile.

Syntaxe

~Agile();

Notes

Ce destructeur libère aussi l’objet représenté par l’objet Agile actuel.

Agile::Get, méthode

Retourne un handle vers l’objet représenté par l’objet Agile actif.

Syntaxe

T^ Get() const;

Valeur de retour

Handle vers l’objet représenté par l’objet Agile actif.

Le type de la valeur de retour est en réalité un type interne non divulgué. Un moyen pratique de conserver la valeur de retour consiste à l’affecter à une variable déclarée avec la auto déduction de type mot clé. Par exemple : auto x = myAgileTvariable->Get();.

Agile::GetAddressOf, méthode

Réinitialise l’objet Agile actif, puis retourne l’adresse d’un handle vers un objet de type T.

Syntaxe

T^* GetAddressOf() throw();

Paramètres

T
Type spécifié par le paramètre de nom de type de modèle.

Valeur de retour

Adresse d’un handle vers un objet de type T.

Notes

Cette opération libère la représentation actuelle d’un objet de type T, le cas échéant ; réinitialise les membres de données de l’objet Agile ; acquiert le contexte de thread actuel, puis retourne l’adresse d’une variable handle-to-object qui peut représenter un objet non agile. Pour faire en sorte qu’une instance de classe Agile représente un objet, utilisez l’opérateur d’affectation (Agile ::operator=) pour affecter l’objet à l’instance de classe Agile.

Agile::GetAddressOfForInOut, méthode

Retourne l'adresse d'un handle vers l'objet représenté par l'objet Agile actif.

Syntaxe

T^* GetAddressOfForInOut()  throw();

Paramètres

T
Type spécifié par le paramètre de nom de type de modèle.

Valeur de retour

Adresse d'un handle vers l'objet représenté par l'objet Agile actif.

Notes

Cette opération acquiert le contexte de thread actuel et retourne l'adresse d'un handle vers l'objet sous-jacent.

Agile::Release, méthode

Ignore l'objet et le contexte sous-jacent de l'objet Agile actif.

Syntaxe

void Release() throw();

Notes

L'objet et le contexte sous-jacent de l'objet Agile actif sont ignorés, s'ils existent, et la valeur de l'objet Agile est alors définie sur null.

Agile::operator->, opérateur

Récupère un handle vers l’objet représenté par l’objet Agile actif.

Syntaxe

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

Valeur de retour

Handle vers l’objet représenté par l’objet Agile actif.

Cet opérateur retourne un type interne non divulgué. Un moyen pratique de conserver la valeur de retour consiste à l’affecter à une variable déclarée avec la auto déduction de type mot clé.

Agile::operator=, opérateur

Assigne l'objet spécifié à l'objet Agile actuel.

Syntaxe

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

Paramètres

T
Le type spécifié par le nom de type du modèle.

object
L'objet ou le handle vers un objet qui est copié ou déplacé vers l'objet Agile actuel.

Lp
Le pointeur d'interface IUnknown d'un objet.

Valeur de retour

Handle d'un objet de type T

Notes

La première version de l'opérateur d'assignation copie un handle vers un type référence à l'objet Agile actuel. La deuxième version copie une référence à un type Agile dans l'objet Agile actuel. La troisième version déplace un type Agile vers l'objet Agile actuel. La quatrième version déplace un pointeur vers un objet COM de l'objet Agile actuel.

L'opération d'assignation applique automatiquement le contexte de l'objet Agile actuel.

Voir aussi

Espace de noms de plateforme