afterEach

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

Описание

пример

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