奇怪,为何子进程send信息给父进程一直flase?
#include <CoProc.au3>#NoTrayIcon
HotKeySet("{esc}","esc")
GUISetState(@SW_SHOW)
msgbox(0,"提示","父进程ID为"&@AutoItPID)
$send=_CoProc ("Sender")
_CoProcReciver ("Reciver")
Func Reciver($vParameter)
MsgBox(0,"成功","子进程发送的消息是:"&$vParameter)
EndFunc
Func esc()
Exit
EndFunc
Func Sender()
msgbox(0,"提示","父进程ID为"&$gi_CoProcParent&@lf&"子进程ID为"&@AutoItPID)
for $i = 1 to 10
$vParameter=_CoProcSend($gi_CoProcParent,$i)
MsgBox(0,"子进程","发送消息"&$vParameter)
Next
exit
EndFunc
[ 本帖最后由 palkiller 于 2008-9-28 12:40 编辑 ] 麻烦用过CoProc.au3函数的大大帮忙解答一下...:face (32): 一个AU3脚本程序能同时运行几个进程?! 原帖由 liongodmien 于 2008-9-27 17:56 发表 http://www.autoitx.com/images/common/back.gif
一个AU3脚本程序能同时运行几个进程?!
CoProc.au3这个UDF函数可以实现,我现在的问题是从子进程发送字符给父进程的时候一直失败...郁闷... 原帖由 palkiller 于 2008-9-27 21:13 发表 http://www.autoitx.com/images/common/back.gif
CoProc.au3这个UDF函数可以实现,我现在的问题是从子进程发送字符给父进程的时候一直失败...郁闷...
一直以来Autoit都不支持多线程,因此一些需要同时运行多个循环的操作也就无法实现。这个问题在其它的某些语言里也经常出现,解决的方法就是使用多进程。
所谓多进程,就是同时运行多个子进程,每个子进程负责不同的操作,藉此达到和多线程相当的效果。Autoit本身已经具备了实现多进程的条件,且已经有人完成了相关的自定义函数。下面我将具体讲解如何利用这些自定义函数实现多进程。
首先到http://www.autoitscript.com/forum/index.php?showtopic=29326&hl=CoProc下载CoProc.zip,压缩包里的CoProc.au3包含了实现多进程的相关函数,你可以把这个文件复制到Include目录下。
http://www.xlan.cn/blog/article.asp?id=108 原帖由 liongodmien 于 2008-9-28 10:33 发表 http://www.autoitx.com/images/common/back.gif
一直以来Autoit都不支持多线程,因此一些需要同时运行多个循环的操作也就无法实现。这个问题在其它的某些语言里也经常出现,解决的方法就是使用多进程。
所谓多进程,就是同时运行多个子进程,每个子进程负责 ...
LS的兄弟...拜托...请看清我的问题...我现在就是用的这个UDF函数在做多进程...汗... 刚才试了下竟然CoProc.au3内部就已经有错误了
回复 7# liongodmien 的帖子
提示内部错误是因为新版去掉了"RunErrorsFatal",装UDF中的$iOldRunErrorsFatal = Opt("RunErrorsFatal", 0)
Opt("RunErrorsFatal", $iOldRunErrorsFatal)
删除即可。 我用3.2.13.7 测试结果同样返回False,你尝试用旧版测试一下以下例子:
#include "coproc.au3"
$iPidChild = _CoProc(Default, "_recv") ; Create new Procces, Set _recv() as Reciever function
Sleep(2000) ; Give some time to load new Process
$test=_CoProcSend($iPidChild,"Something..."); Send a Message to new process
MsgBox(0,"test",$test)
Func _recv($vParm)
MsgBox(0,"Recieved",$vParm)
EndFunc
用3.2.9.3.1版测试成功。。。换旧版吧。用新版的话,UDF要更新了。 收到...谢谢三恨大大...结贴了先...:face (31): 已修正,在3.2.13.7版测试成功。
http://www.autoitx.com/forum.php?mod=viewthread&tid=2900&page=1&extra=page%3D1 原帖由 sanhen 于 2008-9-28 12:41 发表 http://www.autoitx.com/images/common/back.gif
已修正,在3.2.13.7版测试成功。
http://www.autoitx.com/forum.php?mod=viewthread&tid=2900&page=1&extra=page%3D1
收到...俺马上down来试试看...3Q very much...
给发贴人的建议
你用CoProc中的function报错, 那么你可以调试这个function,在 CoProc.au3中加入简单的调试语句----比如:在recever中不同位置加上msgbox,你就知道它为什么运行达不到效果了.
页:
[1]