Jump to content
Sign in to follow this  
Domi2Show

MultiThreading Example

Recommended Posts

Domi2Show

Hey Forum,

I have tried to get a easy MultiThreading.

I don't tested it so much.

_ThreadStart("_Thread1")
_ThreadStart("_Thread2")

MsgBox(0, "", "Mainscript")

Func _Thread1($vDummy)
    MsgBox(0, "", "Thread 1")
EndFunc   ;==>_Thread1

Func _Thread2($vDummy)
    MsgBox(0, "", "Thread 2")
EndFunc   ;==>_Thread2

Func _ThreadStart($sFunctionName)
    Local $h1, $h2, $h3 = DllStructCreate("hwnd[1]"), $h4 = DllStructGetPtr($h3)

    $h1 = DllCallbackRegister($sFunctionName, "int", "int")
    $h2 = DllStructCreate("int")
    $h3 = DllCall("Kernel32.dll", "hwnd", "CreateThread", "ptr", 0, _
            "int", 0, _
            "ptr", DllCallbackGetPtr($h1), _
            "int", 0, _
            "int", 0, _
            "ptr", DllStructGetPtr($h2))
    DllStructSetData($h3, 1, $h3[0], 1)
    DllCall("Kernel32.dll", "int", "CloseHandle", "hwnd", DllStructGetData($h3, 1, 1))
EndFunc   ;==>_ThreadStart

Download: Example.au3

Edit: Sorry for my English, I am German :x

greets,

Domi2Show

Edited by Domi2Show

Share this post


Link to post
Share on other sites
Ascend4nt

You won't get much further than MsgBox before your script falls apart. I've explained -> <- why multithreading 'seems' to work, but in reality the script will crash if you try to do anything else. Its not built for multithreading. If you need multithreading - go for multiprocessing instead. (Start up another script)

Sure, me, trancexx and few select others have successfully created new threads in AutoIt - but that's only with machine code, or with API function calls that take only one parameter, not with script code.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.