Platform::Agile, klasa
Reprezentuje obiekt, który ma mashalingBehavior=Standard jako obiekt agile, co znacznie zmniejsza prawdopodobieństwo wyjątków wątków środowiska uruchomieniowego. Obiekt Agile<T>
umożliwia wywoływanie obiektu niezwinnego lub wywoływanie z tego samego lub innego wątku. Aby uzyskać więcej informacji, zobacz Wątkowanie i marshaling.
Składnia
template <typename T>
class Agile;
Parametry
T
Nazwa typu dla klasy niezwinnej.
Uwagi
Większość klas w środowisko wykonawcze systemu Windows są zwinne. Obiekt agile może wywołać obiekt in-proc lub out-of-proc w tym samym lub innym wątku. Jeśli obiekt nie jest zwinny, opakuj obiekt niezwinny w Agile<T>
obiekcie, który jest zwinny. Agile<T>
Następnie można marshalować obiekt, a źródłowy obiekt niezwinny może być używany.
Klasa Agile<T>
jest natywną, standardową klasą C++ i wymaga klasy agile.h
. Reprezentuje obiekt niezwinny i kontekst obiektu Agile. Kontekst określa model wątków obiektu agile i zachowanie marshalingu. System operacyjny używa kontekstu do określania sposobu marshalingu obiektu.
Członkowie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
Agile::Agile | Inicjuje nowe wystąpienie klasy Agile. |
Agile::~Agile, destruktor | Niszczy bieżące wystąpienie klasy Agile. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
Agile::Get | Zwraca uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile. |
Agile::GetAddressOf | Ponownie inicjuje bieżący obiekt Agile, a następnie zwraca adres uchwytu do obiektu typu T . |
Agile::GetAddressOfForInOut | Zwraca adres uchwytu do obiektu reprezentowanego przez bieżący obiekt Agile. |
Agile::Release | Odrzuca podstawowy obiekt i kontekst bieżącego obiektu Agile. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
Agile::operator—> | Pobiera uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile. |
Agile::operator= | Przypisuje określoną wartość do bieżącego obiektu Agile. |
Hierarchia dziedziczenia
Object
Agile
Wymagania
Minimalny obsługiwany klient: Windows 8
Minimalny obsługiwany serwer: Windows Server 2012
Przestrzeń nazw: Platforma
Nagłówek: agile.h
Agile::Agile, konstruktor
Inicjuje nowe wystąpienie klasy Agile.
Składnia
Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);
Parametry
T
Typ określony przez parametr typename szablonu.
object
W drugiej wersji tego konstruktora obiekt używany do inicjowania nowego wystąpienia Agile. W trzeciej wersji obiekt, który jest kopiowany do nowego wystąpienia Agile. W czwartej wersji obiekt, który jest przenoszony do nowego wystąpienia Agile.
Uwagi
Pierwsza wersja tego konstruktora jest domyślnym konstruktorem. Druga wersja inicjuje nową klasę wystąpienia Agile z obiektu określonego object
przez parametr . Trzecia wersja to konstruktor kopiujący. Czwarta wersja to konstruktor przenoszenia. Ten konstruktor nie może zgłaszać wyjątków.
Agile::~Agile, destruktor
Niszczy bieżące wystąpienie klasy Agile.
Składnia
~Agile();
Uwagi
Ten destruktor zwalnia również obiekt reprezentowany przez bieżący obiekt Agile.
Agile::Get, metoda
Zwraca uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.
Składnia
T^ Get() const;
Wartość zwracana
Uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.
Typ wartości zwracanej jest w rzeczywistości nieujawnionym typem wewnętrznym. Wygodnym sposobem przechowywania wartości zwracanej jest przypisanie jej do zmiennej zadeklarowanej za pomocą słowa kluczowego auto
potrącenia typu. Na przykład auto x = myAgileTvariable->Get();
.
Agile::GetAddressOf, metoda
Ponownie inicjuje bieżący obiekt Agile, a następnie zwraca adres uchwytu do obiektu typu T
.
Składnia
T^* GetAddressOf() throw();
Parametry
T
Typ określony przez parametr typename szablonu.
Wartość zwracana
Adres uchwytu do obiektu typu T
.
Uwagi
Ta operacja zwalnia bieżącą reprezentację obiektu typu T
, jeśli istnieje; ponownie inicjuje elementy członkowskie danych obiektu Agile, uzyskuje bieżący kontekst wątków, a następnie zwraca adres zmiennej handle-to-object, która może reprezentować obiekt niezwinny. Aby spowodować reprezentowanie obiektu przez wystąpienie klasy Agile, użyj operatora przypisania (Agile::operator=), aby przypisać obiekt do wystąpienia klasy Agile.
Agile::GetAddressOfForInOut, metoda
Zwraca adres uchwytu do obiektu reprezentowanego przez bieżący obiekt Agile.
Składnia
T^* GetAddressOfForInOut() throw();
Parametry
T
Typ określony przez parametr typename szablonu.
Wartość zwracana
Adres uchwytu do obiektu reprezentowanego przez bieżący obiekt Agile.
Uwagi
Ta operacja uzyskuje bieżący kontekst wątków, a następnie zwraca adres uchwytu do bazowego obiektu.
Agile::Release, metoda
Odrzuca podstawowy obiekt i kontekst bieżącego obiektu Agile.
Składnia
void Release() throw();
Uwagi
Obiekt bazowy i kontekst bieżącego obiektu Agile są odrzucane, jeśli istnieją, a następnie wartość obiektu Agile ma wartość null.
Agile::operator->
, operator
Pobiera uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.
Składnia
T^ operator->() const throw();
Wartość zwracana
Uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.
Ten operator rzeczywiście zwraca nieujawniony typ wewnętrzny. Wygodnym sposobem przechowywania wartości zwracanej jest przypisanie jej do zmiennej zadeklarowanej za pomocą słowa kluczowego auto
potrącenia typu.
Agile::operator=, operator
Przypisuje określony obiekt do bieżącego obiektu Agile.
Składnia
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 określony przez nazwę typu szablonu.
object
Obiekt lub uchwyt do obiektu, który jest kopiowany lub przenoszony do bieżącego obiektu Agile.
Lp
Wskaźnik interfejsu IUnknown obiektu.
Wartość zwracana
Uchwyt do obiektu typu T
Uwagi
Pierwsza wersja operatora przypisania kopiuje uchwyt do typu odwołania do bieżącego obiektu Agile. Druga wersja kopiuje odwołanie do typu Agile do bieżącego obiektu Agile. Trzecia wersja przenosi typ Agile do bieżącego obiektu Agile. Czwarta wersja przenosi wskaźnik do obiektu COM do bieżącego obiektu Agile.
Operacja przypisania automatycznie utrwala kontekst bieżącego obiektu Agile.
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla