Задайте функцию, чтобы вызвать после всей параллели. Завершенные фьючерсы
outputFuture = afterAll(futures,funtocall,nout)
outputFuture = afterAll(futures,funtocall,nout,'PassFuture',passFuture)
автоматически оценивает outputFuture
= afterAll(futures
,funtocall
,nout
)funtocall
на выходных аргументах всех фьючерсов в futures
, когда они все завершены, и возвращает outputFuture
, чтобы содержать результат. afterAll
оценивает funtocall
на вертикальной конкатенации выходных аргументов всех фьючерсов. Если количество выходных аргументов элементов во фьючерсах отличается, afterAll
использует минимум и игнорирует конечные выходные аргументы. afterAll
вызывает выходные аргументы funtocall
with nout
.
Полезное приложение для afterAll
должно обновить пользовательские интерфейсы, такие как графики и приложения во время параллельных вычислений с помощью parfeval
. Например, можно отправить несколько вычислений рабочим, использующим parfeval
, и обновить пользовательский интерфейс, когда все они закончили использовать afterAll
.
ведет себя то же самое, если outputFuture
= afterAll(futures
,funtocall
,nout
,'PassFuture',passFuture
)passFuture
является false
. Если passFuture
является true
, afterAll
вызывает funtocall
на массив фьючерсов futures
а не на их выходных аргументах. Это происходит, даже если элементы futures
столкнулись с ошибками.
Используйте afterAll
на любых из фьючерсов, возвращенных в parfeval
, parfevalOnAll
, afterEach
, afterAll
или массив, содержащий комбинацию их. Например, используйте afterAll
, чтобы автоматически вызвать больше функций на результаты другого afterEach
или afterAll
. Можно вызвать afterAll
на фьючерсы до и после, они закончили.
Используйте cancel
на будущем, возвращенном в afterAll
, чтобы отменить его выполнение. Если вы вызываете afterAll
на отмененное будущее, это приводит к тому же поведению, как будто будущее столкнулось с ошибкой.