MATLAB 帮助中心
本页采用了机器翻译。点击此处可查看最新英文版本。
定义一个函数,当数据队列接收到新数据时调用
listener = afterEach(queue,funtocall)
listener = afterEach(queue,funtocall) 指定每次 funtocall 接收到新数据时执行的函数 queue。您可以指定要调用的多个不同的函数,因为每次调用 afterEach 都会在队列上创建一个新的监听器。如果要指定其他函数,请再次调用 afterEach。要删除函数与 queue 的注册,请删除返回的 listener 对象。
listener
queue
funtocall
afterEach
您必须在创建数据队列的同一进程中调用 afterEach,否则会发生错误。调用 afterEach 之后,队列中的任何当前数据都会立即传递给指定的函数。
示例
全部折叠
如果调用 afterEach 并且队列中有等待分派的项目,则这些项目将立即分派到 afterEach 函数。在将数据发送到队列之前调用 afterEach,以确保在 send 上调用 afterEach 指定的函数句柄。
send
构造一个 DataQueue 并调用 afterEach。
DataQueue
q = parallel.pool.DataQueue; afterEach(q, @disp);
如果您随后将消息发送到队列,则每条消息都会立即传递给 afterEach 指定的函数句柄。
parfor i = 1 send(q, 2); end
2
send(q, 3)
3
您也可以先将各种消息发送到队列。当您调用 afterEach 时,待处理的消息将被传递给 afterEach 函数,在此示例中为函数句柄 @disp。
@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
数据队列,指定为 parallel.pool.DataQueue 对象。
示例: q = parallel.pool.DataQueue;
q = parallel.pool.DataQueue;
回调函数添加到从 queue 接收到新数据时调用的函数列表中,指定为函数句柄。
所有回调函数必须接受 data 作为单个参量。
data
afterEach(queue,@foo) 期望函数句柄 @foo 为以下形式的函数
afterEach(queue,@foo)
@foo
function foo(data) end
send(queue,someData)
someData
foo(data)
示例: listener = afterEach(queue,funtocall)
event.listener
由 afterEach 创建的侦听程序对象,作为 event.listener 对象的句柄返回。
全部展开
backgroundPool
ThreadPool
该函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
在 R2017a 中推出
event.listener | poll | parfor | send | parallel.pool.DataQueue | parallel.pool.PollableDataQueue
poll
parfor
parallel.pool.PollableDataQueue
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处