Скачать ее можно либо тут либо с официального SVN проекта.
Вкратце, что появилось нового:
Добавлена поддержка исключений в методы Parallel.Future и Parallel.Join. так как эти методы претерпели существенные изменения, существует опасность проблем с ранее написанным кодом. Прежде, чем устанавливать новую версию проверьте history.txt и документацию в OtlParallel.pas для дополнительной информации по совместимости.
Вы также с выходом новой версии получаете полную UML диаграмму классов и методов OTL.
Добавлены новые демонстрационные примеры:
- 43_InvokeAnonymous: - пример использования метода IOmniTaskControl.Invoke и IOmniTask.Invoke.
44_Fork-Join QuickSort: - пример реализации быстрой сортировки QuickSort используя Parallel.ForkJoin.
45_Fork-Join max: Выбор максимального элемента в массиве используя Parallel.ForkJoin.
46_Async: Демо для Parallel.Async.
47_TaskConfig: Демо для Parallel.TaskConfig.
Внесены новые возможности в OTL:
- Новые возможности управления фоновой задачей сделанные для высокоуровневого метода Parallel.Async
- OtlParallel задачи могут быть настроены с Parallel.TaskConfig.
- Parallel.ForkJoin - инструмент упрощающий разработку разветвления / слияния алгоритмов. Более подробно я рассмотрю его в следующих постах
- Интерфейсы IOmniTask и IOmniTaskControl реализованы в методе Invoke, который можно использовать для асинхронного выполнения блока кода в другом потоке. Более подробно я рассмотрю его в следующих постах
- Методы таймера (Timer) может использовать идентификатор таймера (параметр timerID: TOmniValue). Идентификатор таймера, передаваемые этому параметру, позволит вам расшарить один метод между многими таймерами.
- Поддержка non-silent исключений была удален вместе с кодом выхода EXIT_EXCEPTION. Все исключения теперь ловятся на уровне IOmniTask (т.е. не обрабатываются в вашем коде) и хранятся в свойстве IOmniTaskControl.FatalException. Вы можете вызвать IOmniTaskControl.DetachException что бы стать собственником этого исключения.
- Изменена сигнатура для исключений фильтров в OtlHook.FilterException.
- IOmniTaskControl при прекращении посылает сообщения в очереди сообщений и вызывает соответствующие обработчики OnMessage.
- Fixed race condition in TOmniTask.Execute.
- OtlParallel compiles in Delphi 2009.
- Fixed: OTL monitor message window could be used after it was destroyed.
- Fixed: Parallel.ForEach was never running on more than Process.Affinity.Count tasks.
OtlParallel pools are created on the fly – OtlParallel unit can now be used from a DLL.
[dottor_jeckill] - Fixed: TOmniResourceCount.TryAllocate always returned False.
- Fixed: Enumerating over TOmniTaskControlList (for example when using IOmniTaskGroup.SendToAll) leaked one object.
- Makes sure timers are called even if there's a constant stream of messages in registered message queues.
Fixed exception handling in the thread pool.
Комментариев нет:
Отправить комментарий