Classe Platform::Agile
Rappresenta un oggetto con MashalingBehavior=Standard come oggetto Agile, che riduce fortemente le probabilità che si verifichino eccezioni di threading di runtime. Agile<T>
consente all'oggetto non Agile di chiamare o essere chiamato dallo stesso thread o da un thread differente. Per altre informazioni, vedere Threading e marshalling.
template <typename T>
class Agile;
T
Typename per la classe non Agile.
La maggior parte delle classi in Windows Runtime è agile. Un oggetto Agile può chiamare o essere chiamato da un oggetto in-process o out-of-process nello stesso thread o in uno differente. Se un oggetto non è Agile, eseguire il wrapping dell'oggetto non Agile in un oggetto Agile<T>
, che è Agile. Si può quindi eseguire il marshalling dell'oggetto Agile<T>
e usare l'oggetto non Agile sottostante.
La classe Agile<T>
è una classe C++ standard nativa e richiede agile.h
. Rappresenta l'oggetto non Agile e il contestodell'oggetto Agile. Il contesto specifica il modello di threading e il comportamento di marshalling di un oggetto Agile. Il sistema operativo usa il contesto per determinare come eseguire il marshalling di un oggetto.
Nome | Descrizione |
---|---|
Agile::Agile | Inizializza una nuova istanza della classe Agile. |
Distruttore Agile::~Agile | Eliminata l'istanza corrente della classe Agile. |
Nome | Descrizione |
---|---|
Agile::Get | Restituisce un handle all'oggetto rappresentato dall'oggetto Agile corrente. |
Agile::GetAddressOf | Reinizializza l'oggetto Agile corrente e restituisce l'indirizzo di un handle a un oggetto di tipo T . |
Agile::GetAddressOfForInOut | Restituisce l'indirizzo di un handle all'oggetto rappresentato dall'oggetto Agile corrente. |
Agile::Release | Rimuove l'oggetto e il contesto sottostanti dell'oggetto Agile corrente. |
Nome | Descrizione |
---|---|
Agile::operator-> | Recupera un handle all'oggetto rappresentato dall'oggetto Agile corrente. |
Agile::operator= | Assegna il valore specificato all'oggetto Agile corrente. |
Object
Agile
Client minimo supportato: Windows 8
Server minimo supportato: Windows Server 2012
Spazio dei nomi: Platform
Intestazione: agile.h
Inizializza una nuova istanza della classe Agile.
Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);
T
Tipo specificato dal parametro typename del modello.
object
Nella seconda versione di questo costruttore, oggetto utilizzato per inizializzare una nuova istanza Agile. Nella terza versione, oggetto copiato nella nuova istanza Agile. Nella quarta versione, oggetto spostato nella nuova istanza Agile.
La prima versione di questo costruttore rappresenta il costruttore predefinito. Nella seconda versione viene inizializzata la nuova classe Agile dell'istanza dall'oggetto specificato dal parametro object
. La terza versione rappresenta il costruttore di copia. La quarta versione rappresenta il costruttore di spostamento. Questo costruttore non può generare eccezioni.
Eliminata l'istanza corrente della classe Agile.
~Agile();
Questo distruttore rilascia inoltre l'oggetto rappresentato dall'oggetto Agile corrente.
Restituisce un handle all'oggetto rappresentato dall'oggetto Agile corrente.
T^ Get() const;
Handle all'oggetto rappresentato dall'oggetto Agile corrente.
Il tipo di valore restituito effettivo è un tipo interno riservato. Un modo pratico per contenere il valore restituito consiste nell'assegnarlo a una variabile dichiarata con la parola chiave di deduzione del auto
tipo. Ad esempio: auto x = myAgileTvariable->Get();
.
Reinizializza l'oggetto Agile corrente e restituisce l'indirizzo di un handle a un oggetto di tipo T
.
T^* GetAddressOf() throw();
T
Tipo specificato dal parametro typename del modello.
Indirizzo di un handle a un oggetto di tipo T
.
Questa operazione rilascia la rappresentazione corrente di un oggetto di tipo T
, se presente, reinizializza i membri dati dell'oggetto Agile, acquisisce il contesto di threading corrente e quindi restituisce l'indirizzo di una variabile handle-to-object che può rappresentare un oggetto non Agile. Per fare in modo che un'istanza di classe Agile rappresenti un oggetto, usare l'operatore di assegnazione (Agile::operator=) per assegnare l'oggetto all'istanza della classe Agile.
Restituisce l'indirizzo di un handle all'oggetto rappresentato dall'oggetto Agile corrente.
T^* GetAddressOfForInOut() throw();
T
Tipo specificato dal parametro typename del modello.
Indirizzo di un handle all'oggetto rappresentato dall'oggetto Agile corrente.
Questa operazione acquisisce il contesto di threading corrente e successivamente restituisce l'indirizzo di un handle all'oggetto sottostante.
Rimuove l'oggetto e il contesto sottostanti dell'oggetto Agile corrente.
void Release() throw();
Se esistono, l'oggetto e il contesto sottostanti dell'oggetto Agile corrente vengono rimossi, quindi il valore dell'oggetto Agile viene impostato su null.
Recupera un handle all'oggetto rappresentato dall'oggetto Agile corrente.
T^ operator->() const throw();
Handle all'oggetto rappresentato dall'oggetto Agile corrente.
Questo operatore restituisce un tipo interno riservato. Un modo pratico per contenere il valore restituito consiste nell'assegnarlo a una variabile dichiarata con la parola chiave di deduzione del auto
tipo.
Assegna l'oggetto specificato all'oggetto Agile corrente.
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
Tipo specificato dal typename del modello.
object
Oggetto o handle a un oggetto che viene copiato o spostato nell'oggetto Agile corrente.
Lp
Puntatore a interfaccia IUnknown di un oggetto.
Handle a un oggetto di tipo T
La prima versione dell'operatore di assegnazione copia un handle a un tipo di riferimento all'oggetto Agile corrente. La seconda versione copia un riferimento a un tipo Agile all'oggetto Agile corrente. La terza versione sposta un tipo Agile all'oggetto Agile corrente. La quarta versione sposta un puntatore a un oggetto COM all'oggetto Agile corrente.
L'operazione di assegnazione rende automaticamente persistente il contesto dell'oggetto Agile corrente.