Jump to content
Sign in to follow this  

MultiThreading Example

Recommended Posts

Hey Forum,

I have tried to get a easy MultiThreading.

I don't tested it so much.


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



Edited by Domi2Show

Share this post

Link to post
Share on other sites

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  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...