精易论坛

标题: 线程循环中加入了延时该怎么立刻结束 [打印本页]

作者: 墨轩    时间: 4 天前
标题: 线程循环中加入了延时该怎么立刻结束
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
线程句柄整数型  
是否运行逻辑型  

子程序名返回值类型公开备 注
_按钮_线程开始_被单击  
如果真 (按钮_线程开始.标题 = “停止”)
是否运行 = 假
线程_等待 (线程句柄, -1)
线程_销毁 (线程句柄)
线程句柄 = 0
按钮_线程开始.标题 = “开始”
返回 ()
是否运行 = 真
线程句柄 = 线程_启动 (&线程任务)
按钮_线程开始.标题 = “停止”
子程序名返回值类型公开备 注
线程任务  
判断循环首 (是否运行)
如果真 (是否运行 = )
跳出循环 ()
调试输出 (0)
程序_延时 (2000)
调试输出 (1)
程序_延时 (3000)
判断循环尾 ()
调试输出 (3)


i支持库列表   支持库注释   
spec特殊功能支持库

想实现的效果是点击停止了立刻结束线程并执行调试输出(3)

作者: 1173847128    时间: 4 天前
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
线程句柄整数型  
是否运行逻辑型  

子程序名返回值类型公开备 注
_按钮_线程开始_被单击  
如果 (是否运行 = )
是否运行 = 真
按钮_线程开始.标题 = “停止”
线程句柄 = 线程_启动 (&线程任务)

是否运行 = 假
线程_销毁 (线程句柄)
按钮_线程开始.标题 = “开始”
调试输出 (3)  ' ’放这不就好了-----------

子程序名返回值类型公开备 注
线程任务  
判断循环首 (是否运行)
' ’如果真 (是否运行 = )
' ’跳出循环 ()
' 上面都循环判断,了还判断跳出个啥
调试输出 (0)
程序_延时 (2000)
调试输出 (1)
程序_延时 (3000)
判断循环尾 ()
' ’调试输出 (3)  ' 线程都被你强制关闭了还调试啥??



i支持库列表   支持库注释   
spec特殊功能支持库


作者: 1173847128    时间: 4 天前
  
子程序名返回值类型公开备 注
_按钮1_被单击  
线程_销毁 (线程句柄)
线程_销毁 (线程句柄)
作者: chaochaochao    时间: 4 天前
可以不通过传递参数来判断线程是否开关,直接用结束线程吧
作者: 1173847128    时间: 4 天前
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
线程句柄整数型  
是否运行逻辑型  

子程序名返回值类型公开备 注
_按钮_线程开始_被单击  
如果 (是否运行 = )
是否运行 = 真
按钮_线程开始.标题 = “停止”
线程句柄 = 线程_启动 (&线程任务)

是否运行 = 假
线程_销毁 (线程句柄)
按钮_线程开始.标题 = “开始”
调试输出 (3)  ' ’放这不就好了-----------

子程序名返回值类型公开备 注
线程任务  
判断循环首 (是否运行)
' ’如果真 (是否运行 = )
' ’跳出循环 ()
' 上面都循环判断,了还判断跳出个啥
调试输出 (0)
程序_延时 (2000)
调试输出 (1)
程序_延时 (3000)
判断循环尾 ()
' ’调试输出 (3)  ' 线程都被你强制关闭了还调试啥??



i支持库列表   支持库注释   
spec特殊功能支持库

作者: 1173847128    时间: 4 天前
在审核,给你改良了一下
作者: 熬夜    时间: 4 天前
为何不 弄个常量A  判断 a=0  a=1  去选择执行不执行 结果
作者: love5618775    时间: 4 天前
如果我来思考,我就写一个延迟100ms,循环,那么我要循环10次才算1ms,在这个循环体里面,我加入一个判断,如果变量=真,那么就跳出循环,继续执行,相当于100ms我判断值是否需要的值,不是我就不进行这个延迟的循环了。
作者: 1173847128    时间: 4 天前
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
线程句柄整数型  
是否运行逻辑型  

子程序名返回值类型公开备 注
_按钮_线程开始_被单击  
如果 (是否运行 = )
是否运行 = 真
按钮_线程开始.标题 = “停止”
线程句柄 = 线程_启动 (&线程任务)

是否运行 = 假
线程_销毁 (线程句柄)
按钮_线程开始.标题 = “开始”
线程句柄 = 0
调试输出 (3)  ' 这里调试不就好了

子程序名返回值类型公开备 注
线程任务  
判断循环首 (是否运行)
程序_延时 (2000)
' 延迟中是不会跳出循环的’
程序_延时 (3000)
判断循环尾 ()
' 调试输出 (3)  你都强制关闭线程了还怎么输出



i支持库列表   支持库注释   
spec特殊功能支持库


作者: 1173847128    时间: 4 天前
.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 线程句柄, 整数型
.程序集变量 是否运行, 逻辑型

.子程序 _按钮_线程开始_被单击

.如果 (是否运行 = 假)

    是否运行 = 真
    按钮_线程开始.标题 = “停止”
    线程句柄 = 线程_启动 (&线程任务)



.否则
    是否运行 = 假
    线程_销毁 (线程句柄)
    按钮_线程开始.标题 = “开始”
    线程句柄 = 0
    调试输出 (3)  ' 这里调试不就好了
.如果结束


.子程序 线程任务

.判断循环首 (是否运行)
    程序_延时 (2000)
    ' 延迟中是不会跳出循环的’
    程序_延时 (3000)
.判断循环尾 ()
' 调试输出 (3)  你都强制关闭线程了还怎么输出

作者: b0y    时间: 前天 10:04
减少每次延时时间 不要直接强制结束线程




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4