Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: MeCraniDOS en 23 Agosto 2013, 13:10 PM

Título: [?] ¿Multithread?
Publicado por: MeCraniDOS en 23 Agosto 2013, 13:10 PM
Buenas, pues es una pregunta un poco concreta, hay alguno de estos lenguaje que sea multithread?

  • Perl
  • Python
  • Ruby

    Tengo un proyecto casi acabado en AutoIt3 y no es multithread, por lo que no funciona como quiero que funcione, y no puedo continuar, quería saber si alguno de esos 3 lenguajes es multithread y sea compatible con AutoIt, tengo casi 2.000 lineas en autoit y traducirlo a otro lenguaje...  :-\

    Mi idea era poder hacer lo siguiente, incluir los archivos *.au3, e ir llamando a las funciones creando threads desde otro lenguaje que soporte au3  :-\ :-\

    Se que con C/C++ lo de los threads es sencillo, pero la interfaz gráfica la tengo hecha con AutoIt y no se si se puede utilizar , y crear mas de un exe e ir llamándolos es un coñazo  :¬¬ :¬¬
    [/size]
Título: Re: [?] ¿Multithread?
Publicado por: 79137913 en 23 Agosto 2013, 13:12 PM
HOLA!!!

http://stackoverflow.com/questions/2846653/python-multithreading-for-dummies

Solo se que python si.

GRACIAS POR LEER!!!
Título: Re: [?] ¿Multithread?
Publicado por: Danyfirex en 24 Agosto 2013, 23:17 PM
Con Autoit lo puedes hacer sin usar threads  :rolleyes:
Título: Re: [?] ¿Multithread?
Publicado por: MeCraniDOS en 24 Agosto 2013, 23:53 PM
Cita de: Danyfirex en 24 Agosto 2013, 23:17 PM
Con Autoit lo puedes hacer sin usar threads  :rolleyes:

Con AutoIt no puedo llamar a mas de una función a la vez  :silbar:
Título: Re: [?] ¿Multithread?
Publicado por: Danyfirex en 24 Agosto 2013, 23:59 PM
la respuesta ya ye la di en otros temas.  :rolleyes:

Tambien se pueden crear hilos. aunque no estables al 100%

Código (php) [Seleccionar]
$Handle1 = DllCallbackRegister("hilo", "int", "ptr")

Func CreateThread($Handle, $struct)
$return = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "dword", 0, "long", DllCallbackGetPtr($Handle), "ptr", DllStructGetPtr($struct), "long", 0, "int*", 0)
Return $return[0]
EndFunc

$Struct1 = DllStructCreate("Char[200];int")
DllStructSetData($Struct1, 1, 10)
CreateThread($Handle1, $Struct1)



MsgBox(0x40, "Normal", "Hola mundo")

Func hilo($x)
$y = DllStructCreate("char[200];int", $x)
MsgBox(0x40, "Desde hilo", "Soy un hilo")
EndFunc




saludos
Título: Re: [?] ¿Multithread?
Publicado por: MeCraniDOS en 25 Agosto 2013, 00:48 AM
Cita de: Danyfirex en 24 Agosto 2013, 23:59 PM
Tambien se pueden crear hilos. aunque no estables al 100%

Perfecto  ;-)
Las funciones tienen que estar en una Dll o algo? o como funciona el código que me has puesto  :huh:
Título: Re: [?] ¿Multithread?
Publicado por: Danyfirex en 25 Agosto 2013, 01:05 AM
Prueba el código cual dll?  :rolleyes:

aunque con ya te dije en otro tema con AdliRegister solucionas el problema :)
Título: Re: [?] ¿Multithread?
Publicado por: MeCraniDOS en 30 Agosto 2013, 11:21 AM
Cita de: Danyfirex en 25 Agosto 2013, 01:05 AM
Prueba el código cual dll?  :rolleyes:

aunque con ya te dije en otro tema con AdliRegister solucionas el problema :)

Entonces que es mejor usar  :huh: :huh:

Esto?


Código (vbnet) [Seleccionar]
$Handle1 = DllCallbackRegister("hilo", "int", "ptr")

Func CreateThread($Handle, $struct)
$return = DllCall("kernel32.dll", "hwnd", "CreateThread", "ptr", 0, "dword", 0, "long", DllCallbackGetPtr($Handle), "ptr", DllStructGetPtr($struct), "long", 0, "int*", 0)
Return $return[0]
EndFunc

$Struct1 = DllStructCreate("Char[200];int")
DllStructSetData($Struct1, 1, 10)
CreateThread($Handle1, $Struct1)



MsgBox(0x40, "Normal", "Hola mundo")

Func hilo($x)
$y = DllStructCreate("char[200];int", $x)
MsgBox(0x40, "Desde hilo", "Soy un hilo")
EndFunc


O Esto?

Código (vbnet) [Seleccionar]

AdlibRegister("Tufuncion",10*1000)


;aqui tu codigo para Buscar



Func Tufuncion()
;aqui el codigo para clikear.
EndFunc


Saludos  :rolleyes:
Título: Re: [?] ¿Multithread?
Publicado por: Danyfirex en 30 Agosto 2013, 14:37 PM
Para lo que quieres esto es suficiente.

Código (php) [Seleccionar]
AdlibRegister


saludos
Título: Re: [?] ¿Multithread?
Publicado por: MeCraniDOS en 30 Agosto 2013, 16:59 PM
Si, la función es muy simple y fácil de usar, ya he solucionado el problema

Gracias  :silbar:
Título: Re: [?] ¿Multithread?
Publicado por: Danyfirex en 30 Agosto 2013, 17:12 PM
Sarcasmo?  :huh:
Título: Re: [?] ¿Multithread?
Publicado por: MeCraniDOS en 30 Agosto 2013, 17:18 PM
Cita de: Danyfirex en 30 Agosto 2013, 17:12 PM
Sarcasmo?  :huh:

No, iba en serio, ya he solucionado el problema... :-\  :-(

He añadido al final
Código (vbnet) [Seleccionar]
AdlibUnRegister("La_Funcion")

Porque sino se me pone la CPU al 100%  ;-)
Título: Re: [?] ¿Multithread?
Publicado por: Danyfirex en 30 Agosto 2013, 18:00 PM
para que no consuma mucho puedes poner un sleep(100) en bucle de tu aplicación. (el que la mantiene activa)

saludos