主要内容

更新等酒吧而功能在后台运行

这个例子展示了如何使用afterEach更新等酒吧与功能在后台运行的进程。

创建一个酒吧等,w

w = waitbar (0,“请等待…”);

为你设定的迭代次数循环,N。存储当前迭代完成的数量,0迭代的总数,N,在用户数据财产等的酒吧。

N =20.;w。用户数据= [0 N];

运行一个循环与N迭代。在每个迭代中,使用parfevalbackgroundPool运行暂停在后台为一个随机的秒数。存储每个未来对象数组中。

i = 1: N延迟=兰德;f (i) = parfeval (backgroundPool @pause 0,延迟);结束

使用辅助函数updateWaitbar更新waitbar之后未来完成。

afterEach (f, @ (~) updateWaitbar (w), 0);

使用删除关闭等待毕竟酒吧未来对象完成。

毕竟(f, @(~)删除(w), 0);

定义辅助函数

定义的helper函数updateWaitbar。函数增量的第一个元素用户数据属性,然后使用向量计算的进展。

函数updateWaitbar (w)%更新waitbar使用用户数据的属性。%检查如果waitbar删除对象的引用如果isvalid (w)%增量迭代完成的数量w.UserData (1) = w.UserData (1) + 1;%计算的进展进步= w.UserData (1) / w.UserData (2);%更新waitbarwaitbar(进步,w);结束结束

另请参阅

|

相关的话题