Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ahustinkrone en 17 Junio 2014, 01:18 am



Título: Threads, Hilos en C++
Publicado por: Ahustinkrone en 17 Junio 2014, 01:18 am
Hola, necesito crear thread pero por mas que busco, no encuentro algún tutorial de como funcionan e utilizan los mismos.. si alguien me podría explicar o pasarme unos links de tutoriales estaría muy agradecido!

PD: es para un programa de windows, por lo tanto no es problema usar la API de windows is es necesario.


Título: Re: Threads, Hilos en C++
Publicado por: ivancea96 en 17 Junio 2014, 01:36 am
Si utilizas C++11, tienes la clase std::thread, con un funcionamiento muy sencillo:

Código
  1. std::thread th(&funcion,parametro1,parametro2 /* ... */);
  2. th.detach();

Le pasas como primer parámetro, la dirección de la función, y luego los parámetros que ha de pasarle a esa función. Desde que creas el objeto, el nuevo hilo empieza a funcionar con la función.

Tienes varias funciones, como th.join(), que deja el hilo que la llama en pausa hasta que "th" termina la función.


Título: Re: Threads, Hilos en C++
Publicado por: Ahustinkrone en 17 Junio 2014, 01:48 am
:/ no uso C++11, pero gracias igual.


Título: Re: Threads, Hilos en C++
Publicado por: x64core en 17 Junio 2014, 05:52 am
Hola, necesito crear thread pero por mas que busco, no encuentro algún tutorial de como funcionan e utilizan los mismos.. si alguien me podría explicar o pasarme unos links de tutoriales estaría muy agradecido!

PD: es para un programa de windows, por lo tanto no es problema usar la API de windows is es necesario.
Como primero recomiendo algun libro especializado en hilos en windows, NT internals, etc y la MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684841(v=vs.85).aspx


Título: Re: Threads, Hilos en C++
Publicado por: eferion en 17 Junio 2014, 12:11 pm
:/ no uso C++11, pero gracias igual.

Usas un compilador antiguo?? si usas uno mínimamente actualizado tienes la opción de usar, en el peor de los casos, algunas características de C++11 sin problemas.


Título: Re: Threads, Hilos en C++
Publicado por: daryo en 17 Junio 2014, 16:10 pm
un ejemplo con  la winapi:
Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. DWORD WINAPI hilo(LPVOID LPARAM);
  5.  
  6.  
  7. int main()
  8. {
  9. HANDLE MiHilo;
  10. DWORD  IdDelHilo;
  11.  
  12. MiHilo=CreateThread(NULL,0,hilo,NULL,0,& IdDelHilo);
  13. MessageBox(NULL,"2","ventana",MB_OK);
  14.  
  15. return 0;
  16. }
  17.  
  18. DWORD WINAPI hilo(LPVOID LPARAM)
  19. {
  20.   MessageBox(NULL,"1","ventana",MB_OK);
  21.  
  22. }