进度条控件的使用原创
金蝶云社区-StephenCurry
StephenCurry
3人赞赏了该文章 1,789次浏览 未经作者许可,禁止转载编辑于2022年12月30日 15:45:01

【业务场景】

进度条控件的进度如何正确计算并显示出来。


【插件开发教程及示例】

一、思路与方案

首先我们要明白进度条是定时刷新显示进度的,它是和其所在的页面在同一个线程上。如果在该线程上做循环的计算逻辑,势必会导致执行过程中界面的其他响应阻塞,表现出来是界面卡住不动,最后进度直接变成100%,缺少中间的更新过程。因此需要采用多线程,将计算逻辑单独抽取出来放到一个类中,让进度条(线程A)定时读取计算逻辑类(线程B)的计算结果。

二、实现过程

1、在使用进度条控件的表单插件中,实例化ThreadPool对象。

2、将计算逻辑封装成一个任务类,实现Runnable接口,在run方法中实现计算逻辑;任务类需要增加构造函数,需要获取到表单插件的页面缓存对象,并往页面缓存中写入计算结果。

3、在表单插件中启动进度条后,开辟新的线程(threadPool.excute)去实例化任务对象,并执行计算逻辑。

4、在表单插件重载的进度条控件接口事件onProgress中,定时刷新进度条,并从页面缓存中获取计算结果更新进度。

5、当计算结果到达100%时,被进度条控件定时刷新事件捕获后,停止进度条监听和更新。

image.png

image.png

image.png

image.png

image.png

image.png

三、效果图

image.png

图标赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0