afterEach

Задайте функцию для вызова при получении новых данных в DataQueue

Описание

пример

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

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

Примеры

свернуть все

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

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

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

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

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

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

afterEach(q, @disp);
     2

     3

Создайте a 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