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 le mot clé de déduction de auto
type. 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 le mot clé de déduction de auto
type.
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.
microsillon
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.