需求:在窗口里添加了一个按钮 循环执行, 现在需要终止这个循环。
方法:通过弹窗后,用公共变量终止循环。
或者有什么方法,解决窗口假死问题?
Dim t0 As Threading.Thread
t0=New Threading.Thread(Sub() Functions.Execute("打开窗口"))
t0.start()
通过
t0.Abort()
终止进行,有下面的报错
'打开窗口
Dim frm As WinForm.Form = Forms("终止窗口)
Dim frmHight As int32 = 100
Dim frmWidth As int32 = 400
Dim Top As Integer = screenHeight - frmHight-100
Dim Left As Integer = screenWidth - frmWidth -25
'msgbox(Top & " " & left)
frm.open(left,Top)
[此贴子已经被作者于2024/2/23 13:40:54编辑过]
不能在异步进程里使用Foxtable设计的窗口,也就是Foxtable设计的窗口只能同步在主线程里使用
或者,在怎么在窗口里做一个启动和终止的按钮?
如果没有终止,启动后程序运行时间很长(1个小时,甚至更长),怎么手动终止?
有些代码执行了是没有办法终止的。
一般是使用循环处理问题的时候才能终止,在循环体里判断。比如
vars(“停止”)=false
for i as integer = 0 to 100
if vars(“停止”)=true exit for
其它费时的内容处理
Application.DoEvents
next
然后停止按钮
vars(“停止”)=true
不过要注意的是使用了Application.DoEvents之后循环的效率会慢上好多倍
目前是通过弹窗,变更公共变量,可以正常终止。
就是程序运行完成后,这个弹窗不能自动关闭。(通过线程打开的,不然不能点击)