Jump to content

MultiThreading Example


Domi2Show
 Share

Recommended Posts

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
Link to comment
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.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...