Я использую IOmniParallelJoin
для параллельного вычисления нескольких задач с функцией NoWait
, потому что я хочу, чтобы графический интерфейс оставался отзывчивым. Но мне также нужно знать, когда вычисления закончены. Есть ли какое-либо событие, которое запускается в таком случае?
Как обрабатывать финализацию IOmniParallelJoin в OmniThreadLibrary?
Ответы (1)
Вы можете либо использовать функцию OnStop
для ввода некоторого кода, либо использовать конфигурацию задачи через TaskConfig
и назначить код через OnTerminated
. Разница в том, что OnStop
вызывается внутри одного из рабочих потоков, а OnTerminated
вызывается внутри основного потока.
person
Uwe Raabe
schedule
09.11.2014
Еще одно отличие, которое я заметил, заключается в том, что событие OnTerminated будет вызываться столько раз, сколько потоков (задач) присоединяются. Как поступить в ситуации, когда требуется запустить код в основном потоке только один раз?
- person Yuriy Chachora; 09.11.2014