Обеспечивает операции добавления задач и их синхронного выполнения. Перед добавлением необходимо создать объект (класс объекта д.б. унаследован от Cntm:: SynchroSpace:: TaskBase) в динамической памяти. После выполнения данный объект будет автоматически уничтожен очередью.
Данный класс является частично многопоточным. Вызовы Add синхронизированы друг с другом и с вызовом Exec(), вызовы Exec() друг с другом не синхронизированы, но м.б. рекурсивны.
См. определение в файле SynchroSpace.h строка 165
Открытые члены | |
TaskQueue () | |
Конструктор. | |
bool | Add (TaskBase *Task) |
Добавить новую задачу в конец очереди. | |
void | Exec () throw () |
Запустить задачи, находящиеся в очереди, на выполнение. |
Cntm::SynchroSpace::TaskQueue::TaskQueue | ( | ) | [inline] |
bool Cntm::SynchroSpace::TaskQueue::Add | ( | TaskBase * | Task | ) |
Добавить новую задачу в конец очереди.
Объект задачи д.б. создан в динамической памяти. После выполнения задача автоматически будет удалена. Класс объекта задачи д.б. унаследован от Cntm:: SynchroSpace:: TaskBase.
Метод возвращает true, если на момент добавления очередь была пуста. Это значит, что после добавления необходимо запустить выполнение задач очереди. В противном случае возвращается false. Это означает, что запрос на выполнение очереди уже был поставлен ранее или уже идет выполнение.
Исключение: NullArgException если не указана задача.
Task | - задача, которую нужно выполнить. Объект задачи д.б. создан в динамической памяти. |
См. определение в файле SynchroSpace.cpp строка 21
Перекрестные ссылки Cntm::LinkedListItemBase::InsertBefore().
void Cntm::SynchroSpace::TaskQueue::Exec | ( | ) | throw () |
Запустить задачи, находящиеся в очереди, на выполнение.
После выполнения задача удаляется из очереди. Если при выполнении задачи происходит исключение, то оно игнорируется.
См. определение в файле SynchroSpace.cpp строка 41
Перекрестные ссылки Cntm::SynchroSpace::TaskBase::Exec(), Cntm::SynchroSpace::TaskBase::IsRecursive() и Cntm::LinkedListItemBase::Remove().
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |