fetchnext
检索下一个可用的未读取Fevalfuture输出
句法
[idx,b1,b2,...,bn] = fetchNext(f)
[idx,b1,b2,...,bn] = fetchNext(f,timeout)
描述
[idx,b1,b2,...,bn] = fetchNext(f)
等待未来的未读取的未来F
要完成,然后返回该阵列中该未来的线性索引F
作为IDX
,以及未来的结果B1,B2,...,BN
。在此通话之前,'读'
特定未来的财产是错误的
;之后是真的
。
[idx,b1,b2,...,bn] = fetchNext(f,timeout)
等待不超过暂停
秒为了结果。如果超时在任何结果可用之前到期,则所有输出参数均为空。
如果没有期货F
谁的'读'
属性是错误的
,然后报告错误。您可以检查是否有未读的未来AnyunRead =〜所有([F.Read])
。
如果是F
在执行过程中已完成的错误,该错误将被丢弃fetchnext
。但是,未来的'读'
设置属性真的
,以便任何后续的电话fetchnext
可以继续。
例子
请求多个功能评估,并在等待完成时更新进度栏。
n = 100;为了idx = n:-1:1%计算n个魔法正方形的等级f(idx)= parfeval(@等级,1,魔术(idx));结尾%构建一个等待箱以跟踪进度h = waitbar(0,“等待fevalfutures完成...”);结果=零(1,n);为了idx = 1:n [poundyedx,this result] = fetchNext(f);%存储结果结果(已完成)= thisResult;%更新Waitbarwaitbar(idx/n,h,sprintf(sprintf)(“最新结果:%D”,this Result));结尾删除(h)
提示
这fetchnext
函数从其数组返回未来的线性索引。相反,如果您需要多维数组的下标值,则可以使用Ind2sub
转换值的函数。