Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:异步执行的终止

1楼
newsun2k 发表于:2024/7/18 10:56:00

关于异步执行,大概代码如下,我想点按钮终止异步执行,好像不起作用。麻烦指导一下。


Public Total As Integer

public pauseflag as boolean 

首先增加一个名为"AddTotal"的函数,代码为:

if pauseflag = false then return nothing

For i As Integer = 1 To 100
    
Total = Total + 1


Next

然后在命令窗口用AsyncExecute方法异步执行此函数100次:

Total = 0

pauseflag = true
For 
i As Integer = 1 To 100
    
Functions.AsyncExecute("AddTotal")
Next

Sleep 
(2000'等待2秒,待所有子线程线程执行完毕
Return 
Total


然后我在其他的地方设置一个按钮,点按钮时执行:pauseflag = false

2楼
有点蓝 发表于:2024/7/18 11:28:00
把累加改大一点把,1加到100不到1毫秒的事,等你点按钮都已经执行完毕了

试试(改大后可能会很慢,注意新建一个项目测试,有点耐心哈)

For i As Integer = 1 To 100000

另外不应该在异步里直接操作全局变量,应该通过同步函数处理,不然全局变量的值是有问题的:http://www.foxtable.com/mobilehelp/topics/3270.htm

3楼
newsun2k 发表于:2024/7/19 13:23:00
没理解。
然后我在其他的地方设置一个按钮,点按钮时执行:pauseflag = false
这里,我改成同步函数处理?
4楼
有点蓝 发表于:2024/7/19 13:48:00
和按钮没有关系,是在异步里对Total这个变量累加的时候,必须使用同步函数
共4 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02197 s, 2 queries.