共用方式為


Platform::Agile 類別

以 Agile 物件來表示具有 MashalingBehavior=Standard 的物件,可大幅降低發生執行階段執行緒例外狀況的機會。 Agile<T> 可讓非 Agile 物件呼叫相同或不同的執行緒,或者從中被呼叫。 如需詳細資訊,請參閱 線程處理和封送處理

語法

template <typename T>
class Agile;

參數

T
非 Agile 類別的 typename。

備註

Windows 執行階段 中的大部分類別都是敏捷式的。 Agile 物件可以在相同或不同的執行緒中呼叫同處理序或跨處理序物件,或者從中被呼叫。 如果物件不是 Agile,請將非 Agile 物件包裝在 Agile 的 Agile<T> 物件中。 這樣就可以封送處理 Agile<T> 物件,且可以使用基礎的非 Agile 物件。

Agile<T> 類別是原生、標準 C++ 類別,需要 agile.h。 它代表非 Agile 物件和 Agile 物件的 「內容」(context)。 內容指定 Agile 物件的執行緒模型和封送處理行為。 作業系統使用內容來決定如何將物件封送處理。

成員

公用建構函式

名稱 描述
Agile::Agile 初始化 Agile 類別的新執行個體。
Agile::~Agile 解構函式 終結 Agile 類別的目前執行個體。

公用方法

名稱 描述
Agile::Get 傳回目前 Agile 物件所代表的物件控制代碼。
Agile::GetAddressOf 重新初始化目前 Agile 物件,然後傳回 T類型物件的控制代碼位址。
Agile::GetAddressOfForInOut 傳回目前 Agile 物件所代表的物件的控制代碼位址。
Agile::Release 捨棄目前 Agile 物件的基礎物件和內容。

公用運算子

名稱 描述
Agile::operator-> 擷取目前 Agile 物件所代表的物件控制代碼。
Agile::operator= 將指定的值指派給目前 Agile 物件。

繼承階層架構

Object

Agile

需求

最低支援用戶端: Windows 8

最低支援伺服器: Windows Server 2012

命名空間: Platform

標頭: agile.h

Agile::Agile 建構函式

初始化 Agile 類別的新執行個體。

語法

Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);

參數

T
樣板 typename 參數指定的類型。

object
在此建構函式的第二個版本中,是用來初始化新 Agile 執行個體的物件。 在第三個版本中,是複製到新 Agile 執行個體的物件。 在第四個版本中,是移動到新 Agile 執行個體的物件。

備註

此建構函式的第一個版本是預設建構函式。 第二個版本從 object 參數指定之物件,初始化新的 Agile 執行個體類別。 第三個版本是複製建構函式。 第四個版本是移動建構函式。 這個建構函式不會擲回例外狀況。

Agile::~Agile 解構函式

終結 Agile 類別的目前執行個體。

語法

~Agile();

備註

此解構函式也會釋放目前 Agile 物件表示的物件。

Agile::Get 方法

傳回目前 Agile 物件所代表的物件控制代碼。

語法

T^ Get() const;

傳回值

目前 Agile 物件所代表的物件控制代碼。

傳回值的類型實際上是不公開的內部類型。 保存傳回值的便利方式是將它指派給以類型推算關鍵詞宣告的 auto 變數。 例如: auto x = myAgileTvariable->Get();

Agile::GetAddressOf 方法

重新初始化目前 Agile 物件,然後傳回 T類型物件的控制代碼位址。

語法

T^* GetAddressOf() throw();

參數

T
樣板 typename 參數指定的類型。

傳回值

T 類型物件的控制代碼位址。

備註

此作業會釋放 類型 T物件的目前表示法,如果有的話;重新初始化 Agile 對象的數據成員;取得目前的線程內容;然後傳回可代表非敏捷式物件的句柄對物件變數位址。 若要讓 Agile 類別實例代表物件,請使用指派運算符 (Agile::operator=) 將物件指派給 Agile 類別實例。

Agile:: getaddressofforinout 方法

傳回目前 Agile 物件所代表的物件的控制代碼位址。

語法

T^* GetAddressOfForInOut()  throw();

參數

T
樣板 typename 參數指定的類型。

傳回值

目前 Agile 物件所代表的物件的控制代碼位址。

備註

這個作業取得目前執行緒的內容,然後傳回基礎物件的控制代碼位址。

Agile::Release 方法

捨棄目前 Agile 物件的基礎物件和內容。

語法

void Release() throw();

備註

捨棄目前 Agile 物件的基礎物件和內容 (如果存在的話),然後將 Agile 物件的值設為 null。

Agile::operator-> 運算子

擷取目前 Agile 物件所代表的物件控制代碼。

語法

T^ operator->() const throw();

傳回值

目前 Agile 物件所代表的物件控制代碼。

這個運算子實際傳回保密的內部類型。 保存傳回值的便利方式是將它指派給以類型推算關鍵詞宣告的 auto 變數。

Agile::operator= 運算子

將指定的物件指派給目前 Agile 物件。

語法

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
typename 樣板指定的類型。

object
複製或移至目前 Agile 物件的物件或物件控制代碼。

lp
物件的 IUnknown 介面指標。

傳回值

T 類型物件的控制代碼

備註

指派運算子的第一個版本會將參考類型的控制代碼複製到目前 Agile 物件。 第二個版本複製 Agile 類型的參考至目前 Agile 物件。 第三個版本移動 Agile 類型至目前 Agile 物件。 第四個版本移動 COM 物件的指標至目前 Agile 物件。

指派作業會自動保存目前 Agile 物件的內容。

另請參閱

平台命名空間