gift8188 发表于 2008-10-21 13:27:00

请教一下关于模拟多线程的。谢谢!

我想通过多线程来实现,2个函数互相制约的,就是2个函数同时执行,setone如果提先就去把setonetime结束掉,如果setonetime如果先结束就去把setone结束掉


我写了如下代码

#include <CoProc.au3>
$setone = _CoProc("_SetOne")
$setonetime = _CoProc("_SetOneTime")

_CoProcReciver("Reciver")

Func _SetOneTime()
$begin = TimerInit()
$dif = TimerDiff($begin)
While $dif <=2000
$dif = TimerDiff($begin)
WEnd
_CoProcSend($gi_CoProcParent,"SetOneTime")
MsgBox(0, "结束SetOne", "结束SetOne", 5)
EndFunc

Func _SetOne();检测当前
这里的函数省略,就是执行一个过程
_CoProcSend($gi_CoProcParent,"SetOne")
EndFunc   ;==>_SetOne

Func Reciver($vParameter)
    If $vParameter = "SetOne" Then _CloseHandle($setonetime)
    If $vParameter = "SetOneTime" Then_CloseHandle($setone)
EndFunc



但似乎没什么效果,2个都没有停。都在执行

gift8188 发表于 2008-10-21 15:23:05

自己顶一下~~~~~~~~~~~

gzken 发表于 2008-10-21 15:35:15

AutoIT有多线程机制吗? 没听说过...

如果没有多线程机制, 某一时刻只是在执行一个函数,没有并行的函数...
要不把两个函数写成两个au3, 提升到进程的层面来处理

gift8188 发表于 2008-10-21 15:55:20

原帖由 gzken 于 2008-10-21 15:35 发表 http://www.autoitx.com/images/common/back.gif
AutoIT有多线程机制吗? 没听说过...

如果没有多线程机制, 某一时刻只是在执行一个函数,没有并行的函数...
要不把两个函数写成两个au3, 提升到进程的层面来处理
我是用这个东东
http://www.autoitx.com/forum.php?mod=viewthread&tid=475&highlight=%CF%DF%B3%CC
页: [1]
查看完整版本: 请教一下关于模拟多线程的。谢谢!