Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Представляет объект, имеющий MashalingBehavior = Standard, как объект Agile, который значительно снижает вероятность возникновения в среде выполнения исключений, связанных с потоками. Agile<T> позволяет объекту, отличному от Agile, вызывать тот же или другой поток или быть вызванным из этих потоков. Дополнительные сведения см. в разделе "Потоки и маршалинг".
Синтаксис
template <typename T>
class Agile;
Параметры
T
Имя типа для класса, отличного от Agile.
Замечания
Большинство классов в среда выполнения Windows являются гибкими. Объект Agile может вызывать внутрипроцессный или внепроцессный объект либо быть вызванным таким объектом в том же или другом потоке. Если объект не является объектом гибкой разработки, заключите его в объект Agile<T> , который является объектом гибкой разработки. После этого объект Agile<T> можно маршалировать, используя таким образом базовый объект, отличный от Agile.
Класс Agile<T> — это стандартный класс неуправляемого кода C++, для которого требуется включаемый файл agile.h. Он представляет объект, отличный от Agile, и контекстобъекта Agile. Контекст задает потоковую модель объекта 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
Тип, указанный в параметре имени типа шаблона.
object
Во второй версии данного конструктора: объект, используемый для инициализации нового экземпляра класса Agile. В третьей версии: объект, который копируется в новый экземпляр класса Agile. В четвертой версии: объект, который перемещается в новый экземпляр класса Agile.
Замечания
Первая версия этого конструктора является конструктором по умолчанию. Вторая версия инициализирует новый экземпляра класса Agile из объекта, указанного параметром object. Третья версия является конструктором копирования. Четвертая версия является конструктором перемещения. Этот конструктор не может вызывать исключения.
Деструктор 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
Тип, указанный в параметре имени типа шаблона.
Возвращаемое значение
Адрес дескриптора для объекта типа T.
Замечания
Эта операция освобождает текущее представление объекта типа T, если таковой имеется; повторно инициализирует элементы данных Agile; получает текущий контекст потоковой обработки, а затем возвращает адрес переменной дескриптора к объекту, которая может представлять не гибкий объект. Чтобы привести экземпляр класса Agile к представлению объекта, используйте оператор назначения (Agile::operator=), чтобы назначить объект экземпляру класса Agile.
Метод Agile::GetAddressOfForInOut
Возвращает адрес дескриптора объекта, представленного текущим объектом Agile.
Синтаксис
T^* GetAddressOfForInOut() throw();
Параметры
T
Тип, указанный в параметре имени типа шаблона.
Возвращаемое значение
Адрес дескриптора объекта, представленного текущим объектом 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
Тип, указанный в имени типа шаблона.
object
Объект или дескриптор объекта, который копируется или перемещается в текущий объект Agile.
lp
Указатель интерфейса IUnknown объекта.
Возвращаемое значение
Дескриптор для объекта типа T
Замечания
Первая версия оператора присваивания копирует дескриптор ссылочного типа в текущий объект Agile. Вторая версия копирует ссылку на тип Agile в текущий объект Agile. Третья версия перемещает тип Agile в текущий объект Agile. Четвертая версия перемещает указатель на COM-объект в текущий объект Agile.
Операция присваивания автоматически сохраняет контекст текущего объекта Agile.