Cntm.AsyncProc


Подробное описание

Асинхронные процедуры позволяют разнести во времени моменты запуска и выполнения операций.

После запуска асинхронной операции программа не дожидаясь ее окончания переходит к выполнению следующей операции. В качестве асинхронной операции в библиотеке используется произвольный метод объекта (т.е. асинхронная операция характеризуется указателем на объект и адресом метода).

Асинхронные процедуры позволяют запускать методы объектов как отдельные потоки, выполнять отложенные вызовы методов (отложенные вызовы обсуждались в синхронизации, Cntm::SynchroSpace и Cntm::DeferEvent). Также асинхронные процедуры позволяют манипулировать подготовленными вызовами методов как объектами, которые можно передавать как параметры и т.п. (подготовленный вызов - это фиксация объекта, метода, аргументов, которые будут переданы методу при вызове, после этого остается только подать команду запуска выполнения). Подробное описание асинхронных процедур приведено в Cntm::AsyncProc.

Асинхронные процедуры являются единицами выполнения (наследуют класс Cntm::ExecutionUnit), поэтому взаимодействие с объектом асинхронной процедуры происходит с помощью хэндла Cntm::AsyncProcHandle, который позволяет отслеживать состояние выполнения, запускать (если процедура не была запущена при создании), останавливать, а также выполнять ряд других действий. Шаблонный класс Cntm::AsyncProcResult расширяет возможности хэндла для получения возвращаемого асинхронным методом значения. В качестве параметра указывается тип возвращаемого значения.


Классы

class  Cntm::AsyncProc
 Класс асинхронной процедуры. Подробнее...
class  Cntm::AsyncProcHandle
 Хэндл асинхронной процедуры. Подробнее...
class  Cntm::AsyncProcResult< ResT >
 Класс для получения результата выполнения всинхронного метода, указанного при создании процедуры. Подробнее...
class  Cntm::AsyncProcTerminatingSignal
 Класс сигнала, использующегося в качестве исключения при завершении асинхронных процедур. Подробнее...
class  Cntm::NoneAsyncResultException
 Исключение, генерируемое при попытке считать результат асинхронной процедуры, когда ее выполнение закончилось генерацией исключения, которое не было обработано в самой процедуре. Подробнее...


SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3