Рассматривали ли вы использование события на уровне пакета и фильтрацию для запуска только тогда, когда этого требует ваше конкретное состояние?
Например. Вы можете использовать событие OnPostExecute, просто поместив фиктивную задачу в свой поток с именем, которое начинается с определенной строки, например «RunMyTasks», а затем проверьте System :: SourceName, чтобы увидеть, начинается ли оно с «RunMyTasks». Если это так, тогда переходите к выполнению ваших задач (и в противном случае переходите к обработке события, как обычно).
Вы можете сделать аналогичную вещь, используя OnVariableValueChanged - это может быть лучше (хотя вам нужно проверить это). Создайте переменную с RaiseChangedEvent = TRUE. Создайте скрипт задачи / компонента, чтобы изменить значение переменной; наконец, поместите вашу задачу в обработчик событий.
Посмотрите обзорные заметки внизу поста Джейми здесь .