afterEach

Задайте функцию, чтобы вызвать, когда новые данные будут получены на DataQueue

Синтаксис

listener = afterEach(queue, funtocall)

Описание

пример

listener = afterEach(queue, funtocall) задает функциональный funtocall, чтобы выполниться каждый раз, когда queue получает новые данные. Можно задать несколько различных функций, чтобы вызвать, потому что каждый вызов afterEach создает новый прослушиватель на очереди. Если вы хотите задать другую функцию, вызовите afterEach снова. Чтобы удалить регистрацию функции с queue, удалите возвращенный объект listener.

Необходимо вызвать afterEach в том же процессе, где вы создали очередь данных, в противном случае ошибка происходит. После вызова afterEach любые текущие данные в очереди сразу отправлены предоставленной функции.

Примеры

свернуть все

Если вы вызываете afterEach и существуют элементы на очереди, ожидающей, чтобы быть диспетчеризированными, эти элементы сразу отправлены функции afterEach. Вызовите afterEach перед передающими данными очереди, чтобы гарантировать, что на send, указатель на функцию, заданный afterEach, называется.

Создайте DataQueue и вызовите afterEach.

q = parallel.pool.DataQueue;
afterEach(q, @disp);
Если вы затем отправляете сообщения очереди, каждое сообщение передается указателю на функцию, заданному afterEach сразу.

parfor i = 1
    send(q, 2); 
end
     2
send(q, 3)
     3

Можно также сначала отправить различные сообщения очереди. Когда вы вызываете afterEach, незаконченные сообщения передаются функции afterEach в этом примере к указателю на функцию @disp.

q = parallel.pool.DataQueue;
parfor i = 1
    send(q, 2); 
end
send(q, 3)

afterEach(q, @disp);
     2

     3

Создайте DataQueue и создайте прослушиватель.

D = parallel.pool.DataQueue;
listener = D.afterEach(@disp);

Отправьте некоторые данные со значением 1.

D.send(1)
     1

Удалите прослушиватель.

delete(listener) 
D.send(1)

Никакие данные не возвращены, потому что вы удалили коллбэк путем удаления прослушивателя.

Входные параметры

свернуть все

Очередь данных, заданная как объект parallel.pool.DataQueue.

Пример: q = parallel.pool.DataQueue;

Указатель на функцию, задавая функцию, добавленную к списку функций, чтобы вызвать, когда часть новых данных получена от queue.

Пример: listener = afterEach(queue, funtocall)

Все функции обратного вызова должны принять data как отдельный аргумент.

afterEach(queue, @foo) ожидает указатель на функцию @foo к функции формы

function foo(data)
end 
Когда send(queue, someData) называется на рабочем, someData сериализирован и передан обратно клиенту. someData десериализовывается на клиенте и передается как вход foo(data).

Выходные аргументы

свернуть все

Объект прослушивателя создается afterEach, возвращенным как указатель на объект event.listener.

Введенный в R2017a