找回密码
 加入
搜索
查看: 6807|回复: 11

[AU3基础] AU3存在“单线程无法多线程”的问题吗?【已解决】

  [复制链接]
发表于 2010-5-18 21:03:29 | 显示全部楼层 |阅读模式
本帖最后由 chnlikang 于 2010-5-20 07:58 编辑

AU3存在“单线程无法多线程”的问题吗?如有【继续求解】那个贴存在的问题。
关于退出有 EXIT 退出脚本,和exitloop中断循环。有没有一个能直接退出循环的或自定义函数的,不是中断循环,是立刻退出。也不是直接结束程序的,只是立刻退出返回主脚本的。别说是Return,如果是给个强悍的例子,大家一起学习下。新手努力学习中,见笑啦。
发表于 2010-5-18 23:31:00 | 显示全部楼层
返回主脚本是什么意思,循环后面的代码还是代码开始
发表于 2010-5-18 23:43:15 | 显示全部楼层
我觉得这样也能退出啊
$exit = ""
While 1
        For $i = 1 To 5
                MsgBox(0, "", "当前数字:" & $i)
                If $i = 3 Then
                        $exit = "Y"
                        ExitLoop
                EndIf
        Next
        If $exit = "Y" Then
                MsgBox(0, "", "退出总循环")
                ExitLoop
        EndIf
WEnd
发表于 2010-5-19 09:09:06 | 显示全部楼层
不明白中断循环和退出循环有什么区别。
 楼主| 发表于 2010-5-19 09:23:22 | 显示全部楼层
回复 2# netegg


    ONEVENT 模式下的主脚本,
一般为
while 1
       sleep(1000)
wend
循环后面有代码的执行后面的,没代码的返回代码开始
发表于 2010-5-19 11:56:24 | 显示全部楼层
不是很明白,是这样的结构吗
func function1()
.。。
endfunc
while 1
sleep(100)
wend
func function2()
。。。
endfunc
发表于 2010-5-19 11:56:30 | 显示全部楼层
不是很明白,是这样的结构吗
func function1()
.。。
endfunc
while 1
sleep(100)
wend
func function2()
。。。
endfunc
 楼主| 发表于 2010-5-19 18:34:38 | 显示全部楼层
本帖最后由 chnlikang 于 2010-5-19 18:45 编辑

回复 7# netegg
看这个例子是我提的问题所在
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("例子", 258, 123, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")

$Button1 = GUICtrlCreateButton("开始演示", 24, 40, 75, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("停止演示", 152, 40, 75, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $a=0
While 1
        Select
                Case $a=1
                        While 1
                                If $a=2 Then ExitLoop
                                Sleep(500)
                                MsgBox(0,"","现在请你按停止键")
                                Sleep(500)
                                MsgBox(0,"","是不是还没有停止呀")
                                Sleep(500)
                                MsgBox(0,"","循环中的msgbox共有7个,这是第3个")
                                Sleep(500)
                                MsgBox(0,"","$a在点击停止按钮后就=2了,但是后面的代码还在运行。")
                                Sleep(500)
                                MsgBox(0,"","这是第5个msgbox,当$a=2时循环是停止了,但不是立刻退出")
                                Sleep(500)
                                MsgBox(0,"","直到运行到第7个MSGBOX,才退出,这是第6个")
                                Sleep(500)
                                MsgBox(0,"","这是第7个, 循环代码退出。但并不是程序不退出,不是EXIT的效果")
                                Sleep(500)
                        WEnd
                             Case $a=2
                        $a=0
                        MsgBox(0,"","循环终于停止啦")
        EndSelect                        
                                
WEnd

Func Button1Click()
        $a=1

EndFunc
Func Button2Click()
        $a=2

EndFunc
Func Form1Close()
        MsgBox(0,"","不只我匆匆写下这个例子,你可明白我提问的问题")
        Exit

EndFunc
发表于 2010-5-19 19:46:26 | 显示全部楼层
你这个程序能运行?
 楼主| 发表于 2010-5-20 08:29:27 | 显示全部楼层
发表于 2014-6-13 11:25:20 | 显示全部楼层
学习了 ,不错!
发表于 2019-3-6 00:43:43 | 显示全部楼层
非常感谢了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 12:46 , Processed in 0.079927 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表