回复 14# gyc990326
先不说报错的问题吧,你上面的例子如果没有一个msgbox来控制线程的创建,(多核心或多线程CPU)运行下下面的例子看以下会出什么情况。
缺少线程间的同步,没有办法控制线程切换。。。
Global $hThread = DllCallbackRegister("_ThreadProc", "DWORD", "ptr")
Global $i = 1
While $i < 10
;MsgBox(0, "Main", "press Ok To Start " & $i & " Thread!")
DllCall("Kernel32.dll", "HANDLE", "CreateThread", "ptr", 0, "ptr", 0, "ptr", DllCallbackGetPtr($hThread), "DWORD", 0, "ptr", 0, "DWORD_PTR", 0)
WEnd
Sleep(10000)
Func _ThreadProc($Param)
$i += 1
MsgBox(0, "", "Hello! now $i = " & $i)
EndFunc ;==>_ThreadProc
|