Multithreading

09/16/2009 15:38 SCORNI#1
Code:
$handle = DllCallbackRegister("_Threadstart","int","ptr")
$handlr = DllCallbackRegister("_Threadstard","int","ptr")

$dll = DllStructCreate("Char[200];int")
DllStructSetData($dll,1,"hi")
DllStructSetData($dll,2,1234)


$ret = DllCall("kernel32.dll","hwnd","CreateThread","ptr",0,"dword",0,"long",DllCallbackGetPtr($handle),"ptr",DllStructGetPtr($dll),"long",0,"int*",0)
DllCall("kernel32.dll","hwnd","CreateThread","ptr",0,"dword",0,"long",DllCallbackGetPtr($handlr),"ptr",DllStructGetPtr($dll),"long",0,"int*",0)
msgbox (0,"","1")

Func _ThreadStart($x)
    For $i = 1 To 1
        msgbox (0,"","2")
        Sleep(100)
    Next
    
    exit
    
EndFunc
Func _ThreadStard($x)
    For $i = 1 To 1
        msgbox (0,"","3")
        Sleep(100)
    Next
    
    exit
    
EndFunc
09/16/2009 17:06 InToxic#2
Du kannst echt gut copy & pasten!
09/16/2009 19:15 Xereon#3
Quote:
Originally Posted by SCORNI View Post
Code:
$handle = DllCallbackRegister("_Threadstart","int","ptr")
$handlr = DllCallbackRegister("_Threadstard","int","ptr")

$dll = DllStructCreate("Char[200];int")
DllStructSetData($dll,1,"hi")
DllStructSetData($dll,2,1234)


$ret = DllCall("kernel32.dll","hwnd","CreateThread","ptr",0,"dword",0,"long",DllCallbackGetPtr($handle),"ptr",DllStructGetPtr($dll),"long",0,"int*",0)
DllCall("kernel32.dll","hwnd","CreateThread","ptr",0,"dword",0,"long",DllCallbackGetPtr($handlr),"ptr",DllStructGetPtr($dll),"long",0,"int*",0)
msgbox (0,"","1")

Func _ThreadStart($x)
    For $i = 1 To 1
        msgbox (0,"","2")
        Sleep(100)
    Next
    
    exit
    
EndFunc
Func _ThreadStard($x)
    For $i = 1 To 1
        msgbox (0,"","3")
        Sleep(100)
    Next
    
    exit
    
EndFunc
Eh lol und was soll ich jetzt damit?
Für Multi Threading habe ich eine UDF, wofür also dein kleiner Code in dem sich nochnichtmal eine Funktion befindet um einen Thread zu schließen
09/16/2009 19:40 ~Freaky~#4
Ihr wist doch schon das das ein Beispiel ist wie man mehrer funktionen gleichzeitig aufrufen kann ;)
09/16/2009 20:08 InToxic#5
Quote:
Originally Posted by ~Freaky~ View Post
Ihr wist doch schon das das ein Beispiel ist wie man mehrer funktionen gleichzeitig aufrufen kann ;)
Nein wirklich?
09/16/2009 22:26 ~Freaky~#6
Kann ja sein weil wen man sich das jetz durchliest wirkt es anders ^^aber egal :)
09/17/2009 14:01 SCORNI#7
Quote:
Originally Posted by Xereon View Post
Eh lol und was soll ich jetzt damit?
lol hab ich gesagt du sie benutzen musst ?
09/17/2009 14:05 Xereon#8
Quote:
Originally Posted by SCORNI View Post
lol hab ich gesagt du sie benutzen musst ?
Da du ja meintes das du das hier Pupblic machen müsstes, war der Sinn dahinter das wir das da benutzen sollen, falls wir es benötigen.
Jedoch gibt es eine viel bessere und ausführlichere UDF als dieses "Ding" was du da losgelassen hast.

Beim nächsten bitten nachdenken und google benutzen -.-
09/17/2009 14:58 SCORNI#9
multithreading bei autoit hat keinen sinn. denn der thread a muss auf die antwort von b warten und deshalb kann man nix doppeltso schnell erreichen. bin grad dran ne multitasking udf zu machen das dauert aber wohl noch ein bischen
09/17/2009 17:57 Shadow992#10
Quote:
Originally Posted by SCORNI View Post
multithreading bei autoit hat keinen sinn.
Warum hat Multithreading bei AutoIT keinen Sinn ?
Das ist genauso wie wenn du sagen würdest Multithreading in C++ hat keinen Sinn .
Multithreading in AutoIT hat sehr wohl Sinn !
Vielleicht ist es schwerer das umzusetzten , aber möglich und auch vollkommen sinnvoll ...

Eine kleine Erklärung was der Code Stück für Stück macht wäre nett .....
Ansonsten würde ich gleich sagen , weg damit , da das sowieso die meisten nicht verstehen und die , die es verstehen habe sich etwas derartiges in 10 min selber gebastelt ....
09/17/2009 19:53 Shadowz75#11
Quote:
It is well documented that AutoIt won't Multi thread. Good attempt! Keep learning!
Volly(AU3 MVP)

Vergesst es, der Autoit Interpreter interpretiert den Code falsch. Dabei kommen solche Fehler:
- Der Thread wird zweimal gestartet
- Stack Errors
- Beim Schließen des Threads wird das Programm beendet

Wenn ihr gescheit Multithreading benutzen wollt, dann lernt eine .Net Sprache, Java oder C++
09/17/2009 20:08 SCORNI#12
@shadow
multithreading hat in autoit wirklich nicht so viel sinn versuch mal so eine udf zu basteln.
das einzige was klappen könnte währe multitasking ist aber nicht gerade leicht umzusetzen den gedanken
09/17/2009 20:30 Shadowz75#13
Doch genauso wie in Hochsprachen kann man dadurch für die GUI einen extra Thread erstellen, dadurch wird die GUI nicht geblockt
09/18/2009 12:29 SCORNI#14
sowas wie eine gui ....
ich hatte da mehr an sowas wie einen passwortcracker gedacht, es hat auch geklappt aber leider nur mit einem thread und deshalb dauert es dann schon länger -.-
03/17/2010 17:08 Killer136#15
Leute habe was echt krasses gesehen ich zocke gerade mit Hotkey hackin Qua. regen und dann kommt einer rein und machtmal eben 600 kills:D
was ist dasfürein hack ??
ist der neu
weilo er meinte er hat ihn selfgecodedt was ich nicht glaube
MFG Fuminik