Система гарантирует, что методы задачи будут вызваны синхронно в том синхропространстве, куда она будет добавлена.
Выполнение задачи происходит отложенно от постановки задачи в очередь (т.е. если постановка задачи произошла внутри синхропространства, то выполнение начнется только после выхода из него) внутри синхропространства с реентерабельным режимом входа. Если в процессе выполнения задачи произойдет реентерабельный вход в механизм выполнения задач, то выполнение задач начнется с начала очереди.
См. определение в файле SynchroSpace.h строка 65
Открытые члены | |
virtual | ~TaskBase () |
Вуртуальный деструктор. | |
virtual void | Exec (bool Recursive=false)=0 |
Выполнить задачу. | |
virtual bool | IsRecursive () const =0 |
Характеристика задачи, указывающая является ли задача рекурсивной или нет (постоянна на всем протяжении жизни объекта). | |
Друзья | |
class | TaskQueue |
virtual Cntm::SynchroSpace::TaskBase::~TaskBase | ( | ) | [inline, virtual] |
virtual void Cntm::SynchroSpace::TaskBase::Exec | ( | bool | Recursive = false |
) | [pure virtual] |
Выполнить задачу.
Если задача рекурсивная (IsRecurse() = true), то возможен повторный вход в данный метод (если при выполнении данного метода произойдет запуск вложенного цикла обработки задач).
Исключения, сгенерированные данным методом, игнорируются системой.
Recursive | - флаг, сообщающий какой это вызов: первый (false) или рекурсивный (true). |
virtual bool Cntm::SynchroSpace::TaskBase::IsRecursive | ( | ) | const [pure virtual] |
Характеристика задачи, указывающая является ли задача рекурсивной или нет (постоянна на всем протяжении жизни объекта).
Если возвращается false, то рекурсивных вызовов метода Exec() никогда не будет. Если возвращается true, то при запуске вложенного цикла обработки задач из данного метода опять будет вызван метод Exec() этого объекта (рекурсивно).
friend class TaskQueue [friend] |
См. определение в файле SynchroSpace.h строка 89
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |