Sdílet prostřednictvím


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.

Viz také

Namespace platformy