четверг, 30 сентября 2010 г.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 11

Вызов метода по имени или по адресу

В этом разделе мы рассмотрим различные способы вызова методов фоновой задачи.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 10

Очереди задач

Одной из возможностей OTL являются очереди. Что они собой представляют? Допустим Вам нужно запустить несколько фоновых задач, но в определенном порядке. Например, вы работаете с некоторым массивом данных. Первый поток, заполняет данный массив некоторыми значениями. Второй поток должен переслать весь массив данных, например в Интернет. Если Вы запустите сразу две задачи, то у вас будет путаница, например первый поток, еще не успеет заполнить массив, а второй отправит неполные данные.

среда, 29 сентября 2010 г.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 9

Группы задач

Еще одной интересной возможностью OTL – является возможность группировки фоновых задач. Работая с группой задач, программист может, используя интерфейс группы управлять всеми входящими в группу задачами.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 8

Завершение фоновых задач по событию.

Одной из интересных особенностей библиотеки OTL в плане управления временем жизни фоновой задачи является  - завершение фоновой задачи по событию. Как вы знаете фоновую задачу можно завершить, используя метод Terminate. Однако есть еще один способ завершения фоновой задачи – способ завершения по событию. Для этого используется метод TerminateWhen с  объектом IOmniCancellationToken.

вторник, 28 сентября 2010 г.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 7

Обработка ошибок в OTL.

Одной из важных особенностей разработки многопоточных приложений является правильная обработка ошибок в фоновых потоках. Многие из Вас сталкивались с тем, что созданный Вами фоновый поток вдруг внезапно завершает работу. Обычно и наиболее часто это вызвано ошибкой произошедшей в коде фонового потока. Библиотека OTL предлагает хороший механизм отслеживание ошибок в фоновых потоках.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 6


Обработка сообщений Windows в OTL.

Итак, в предыдущих разделах мы научились работать  с сообщениями. Однако эти сообщения были заданы нами. В данном же разделе мы рассмотрим работу с сообщениями Windows, научимся перехватывать и обрабатывать их в фоновых задачах.

воскресенье, 26 сентября 2010 г.

Использование OmniThread Libray (OTL) для создания многопоточных приложений - 5

Реализация каналов связи между фоновыми задачами.

И так мы научились обмениваться сообщениями между фоновой задачей и основным потоком программы. А что делать, если мы захотим обменяться сообщениями между различными фоновыми задачами. Ответ прост - мы должны создать дополнительный канал связи используя систему связи OTL. Оговорюсь сразу, подробное рассмотрение системы связи OTL будет дано отдельно, здесь же речь пойдет так сказать о практической реализации.