Platform::Agile – třída
Představuje objekt, který má MashalingBehavior=Standard jako agilní objekt, což výrazně snižuje šance na výjimky za běhu vláken. Umožňuje Agile<T>
, aby neagilní objekt volal nebo byl volán ze stejného nebo jiného vlákna. Další informace naleznete v tématu Threading a Marshaling.
Syntaxe
template <typename T>
class Agile;
Parametry
T
Název typu pro třídu, která není agilní.
Poznámky
Většina tříd v prostředí Windows Runtime je agilní. Agilní objekt může volat nebo volat in-proc nebo out-of-proc objekt ve stejném nebo jiném vlákně. Pokud objekt není agilní, zabalte neagilní objekt do objektu Agile<T>
, který je agilní. Agile<T>
Poté může být objekt zařazován a podkladový neagilní objekt lze použít.
Třída Agile<T>
je nativní, standardní třída C++ a vyžaduje agile.h
. Představuje agilní objekt a kontext agilního objektu. Kontext určuje model agilního objektu s vlákny a zařazování chování. Operační systém používá kontext k určení způsobu zařazování objektu.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
Agile::Agile | Inicializuje novou instanci agilní třídy. |
Agilní::~Agilní destruktor | Zničí aktuální instanci agilní třídy. |
Veřejné metody
Název | Popis |
---|---|
Agile::Get | Vrátí popisovač objektu, který je reprezentován aktuálním agilním objektem. |
Agile::GetAddressOf | Znovu inicializuje aktuální agilní objekt a poté vrátí adresu popisovače objektu typu T . |
Agile::GetAddressOfForInOut | Vrátí adresu popisovače objektu reprezentované aktuálním agilním objektem. |
Agile::Release | Zahodí aktuální agilní objekt základní objekt a kontext. |
Veřejné operátory
Název | Popis |
---|---|
Agile::operator-> | Načte popisovač objektu reprezentovaný aktuálním agilním objektem. |
Agile::operator= | Přiřadí zadanou hodnotu aktuálnímu agilnímu objektu. |
Hierarchie dědičnosti
Object
Agile
Požadavky
Minimální podporovaný klient: Windows 8
Minimální podporovaný server: Windows Server 2012
Namespace: Platforma
Hlavička: agile.h
Agile::Agile – konstruktor
Inicializuje novou instanci agilní třídy.
Syntaxe
Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);
Parametry
T
Typ určený parametrem typename šablony.
object
Ve druhé verzi tohoto konstruktoru objekt použitý k inicializaci nové agilní instance. Ve třetí verzi se objekt, který se zkopíruje do nové agilní instance. Ve čtvrté verzi se objekt přesunutý do nové agilní instance.
Poznámky
První verze tohoto konstruktoru je výchozí konstruktor. Druhá verze inicializuje novou agilní třídu instance z objektu určeného parametrem object
. Třetí verzí je konstruktor kopírování. Čtvrtá verze je konstruktor přesunutí. Tento konstruktor nemůže vyvolat výjimky.
Agilní::~Agilní destruktor
Zničí aktuální instanci agilní třídy.
Syntaxe
~Agile();
Poznámky
Tento destruktor také uvolní objekt reprezentovaný aktuálním agilním objektem.
Agile::Get – metoda
Vrátí popisovač objektu, který je reprezentován aktuálním agilním objektem.
Syntaxe
T^ Get() const;
Návratová hodnota
Popisovač objektu, který je reprezentován aktuálním agilním objektem.
Typ návratové hodnoty je ve skutečnosti neveřejný interní typ. Pohodlný způsob, jak uchovávat návratovou hodnotu, je přiřadit ji proměnné, která je deklarována pomocí klíčového slova odpočtu auto
typu. Například auto x = myAgileTvariable->Get();
.
Agile::GetAddressOf – metoda
Znovu inicializuje aktuální agilní objekt a poté vrátí adresu popisovače objektu typu T
.
Syntaxe
T^* GetAddressOf() throw();
Parametry
T
Typ určený parametrem typename šablony.
Návratová hodnota
Adresa popisovače objektu typu T
.
Poznámky
Tato operace uvolní aktuální reprezentaci objektu typu T
, pokud existuje; znovu inicializuje datové členy agilního objektu; získá aktuální kontext vlákna; a pak vrátí adresu proměnné popisovače k objektu, která může představovat agilní objekt. Pokud chcete, aby instance agilní třídy reprezentovala objekt, použijte operátor přiřazení (Agile::operator=) k přiřazení objektu k instanci agilní třídy.
Agile::GetAddressOfForInOut – metoda
Vrátí adresu popisovače objektu reprezentované aktuálním agilním objektem.
Syntaxe
T^* GetAddressOfForInOut() throw();
Parametry
T
Typ určený parametrem typename šablony.
Návratová hodnota
Adresa popisovače objektu reprezentované aktuálním agilním objektem.
Poznámky
Tato operace získá aktuální kontext vlákna a pak vrátí adresu popisovače podkladovému objektu.
Agile::Release – metoda
Zahodí aktuální agilní objekt základní objekt a kontext.
Syntaxe
void Release() throw();
Poznámky
Základní objekt a kontext aktuálního agilního objektu se zahodí, pokud existují, a hodnota agilního objektu je nastavená na hodnotu null.
Agile::operator->
– operátor
Načte popisovač objektu reprezentovaný aktuálním agilním objektem.
Syntaxe
T^ operator->() const throw();
Návratová hodnota
Popisovač objektu reprezentovaný aktuálním agilním objektem.
Tento operátor ve skutečnosti vrátí nesdělený interní typ. Pohodlný způsob, jak uchovávat návratovou hodnotu, je přiřadit ji proměnné, která je deklarována pomocí klíčového slova odpočtu auto
typu.
Agile::operator= – operátor
Přiřadí zadaný objekt aktuálnímu agilnímu objektu.
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();
Parametry
T
Typ určený názvem typu šablony.
object
Objekt nebo popisovač objektu, který se zkopíruje nebo přesune do aktuálního agilního objektu.
Lp
Ukazatel rozhraní IUnknown objektu.
Návratová hodnota
Popisovač objektu typu T
Poznámky
První verze operátoru přiřazení zkopíruje popisovač do typu odkazu na aktuální agilní objekt. Druhá verze zkopíruje odkaz na agilní typ do aktuálního agilního objektu. Třetí verze přesune agilní typ na aktuální agilní objekt. Čtvrtá verze přesune ukazatel na objekt COM na aktuální agilní objekt.
Operace přiřazení automaticky zachová kontext aktuálního agilního objektu.