AUTOIT (Multi Hilo - multiThread) SOLUCION encontrada.

y programas personales para otros como tu, puede que te corrijan ;)
Responder
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

AUTOIT (Multi Hilo - multiThread) SOLUCION encontrada.

Mensaje por yasmany »

Hola a todos, he estado revisando el foro de ingles de autoit y he encontrado una posible solución para hacer multiHilo nuestros scripts, pongo el código encontrado en la página.
Si alguien sabe dar una explicación técnica con respecto al código, sería genial para ir aprendiendo ademas de que fuese bueno que dijeran sus ventajas o desventajas del código en cuestion.

LINK DE LA PÁGINA
https://www.autoitscript.com/forum/topi ... nt-1278147

Código: Seleccionar todo

Func _START_BACKGROUND_FUNCTION($f)
    Local $handle = DllCallbackRegister("_SubThread", "int", "ptr")
    Local $dllstr = DllStructCreate("Char[200]")
    DllStructSetData($dllstr, 1, $f) ;arg/parameter 1
    Local $return = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "dword", 0, "long", DllCallbackGetPtr($handle), "ptr", DllStructGetPtr($dllstr), "long", 0, "int*", 0)
    ;$return[0] - handle
    ;$return[6] - thread id
EndFunc   ;==>_START_BACKGROUND_FUNCTION
Func _SubThread($x)
    Local $get = DllStructCreate("char[200]", $x)
    Call( DllStructGetData($get, 1))
EndFunc   ;==>_SubThread

Func _TEST()
    MsgBox(0,"","Yes but there are so many problems that it is very limited.")
EndFunc

Func _TEST2()
    MsgBox(0,":)","(: :) :(")
EndFunc

_START_BACKGROUND_FUNCTION("_TEST")
_START_BACKGROUND_FUNCTION("_TEST2")

msgbox (0,0,"Can AutoIt mutlithread"); if you close main process all subtreads are closed
Saludos... :smt024 :smt023
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: AUTOIT (Multi Hilo - multiThread) SOLUCION encontrada.

Mensaje por yasmany »

Bueno si sé como utilizar, pero si alguien puede dar una explicación sobre la función _START_BACKGROUND_FUNCTION($f) a buena hora. Solo es eso. :smt015 :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: AUTOIT (Multi Hilo - multiThread) SOLUCION encontrada.

Mensaje por Dany »

No es seguro trabajar threads con AutoIt.

Saludos
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
yasmany
Hacker del Foro
Mensajes: 249
Registrado: 06 Sep 2011, 21:30

Re: AUTOIT (Multi Hilo - multiThread) SOLUCION encontrada.

Mensaje por yasmany »

Comprendo,... según la pagina dice que es inestable por que autoit no está diseñado para trabajar de esa forma.
Que tengan un buen día :smt003
Saludos... :smt024
Obra de modo que merezcas a tu propio juicio y a juicio de los demás la eternidad, que te hagas insustituible que no merezcas morir.
https://www.facebook.com/yasmanycurimilma
Responder