Foxtable(狐表)用户栏目专家坐堂 → [分享]暂停循环实例(公开源码)


  共有69882人关注过本帖树形打印复制链接

主题:[分享]暂停循环实例(公开源码)

帅哥哟,离线,有人找我吗?
黄训良
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
[分享]暂停循环实例(公开源码)  发帖心情 Post By:2015/12/6 12:45:00 [显示全部帖子]

   

   循环暂停,是非常实用的功能, lsy老师的“暂停循环实例”没有公开源码,因工作需要自己写吧!自己愚钝,花了半天的时间(不用MessageBox),经过n次测试才写了出来,核心代码只有47字。功能如下:

     循环【表A】,每循环一行就去执行一个任务,执行任务这个时间就暂停循环,收到任务结束的信息后,恢复循环!

优点:代码简洁,循环结束什么都不用去“销毁”。
缺点:循环期间CPU占用率在18%-25%,循环结束很快下降到正常水平。
要求:代码必须严谨(务必返回恢复循环的值),避免造成死循环!
应用:1、任务完成时间不太长的情况。2、暂停后面的代码执行。


(有10人需要就公开源码)  

 

 



以下内容只有回复后才可以浏览
[此贴子已经被作者于2015/12/15 12:56:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
黄训良
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2015/12/6 14:04:00 [显示全部帖子]

以下是引用qianqian1530在2015/12/6 13:42:00的发言:
'''
Vars("Mark1") = True
If Vars("s") Is Nothing  Then
    Vars("s") = 1
End If
Dim Sum As Integer
Dim i As Integer
For i = Vars("s") To 100
    If Vars("Mark1")  Then
        Sum = Sum + i
    Else
        Vars("s") = i
    End If
Next

Output.Show(Sum)



暂停
Vars("Mark1") = False

这个已测试过,是再次启动循环,并非暂停。

 回到顶部
帅哥哟,离线,有人找我吗?
黄训良
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2015/12/6 18:25:00 [显示全部帖子]

以下是引用在2015/12/6 15:12:00的发言:

楼主:

  个人感觉,这种用例,用循环暂停不如用队列。用变量通知一个执行一个。

 

分享一下吧!


 回到顶部
帅哥哟,离线,有人找我吗?
黄训良
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2015/12/11 13:17:00 [显示全部帖子]

顶顶顶

 回到顶部