C/Visual C - threads

 
Vista:

threads

Publicado por Blue (5 intervenciones) el 21/12/2005 17:25:18
Hola!

Como se crean threads (hilos) en visual c++ 6.0 con y sin "MFC", mejor dicho como se crean threads progrmando en c++.

gracias por la ayuda!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:threads

Publicado por chuidiang (73 intervenciones) el 21/12/2005 20:56:26
Hola:

El tema de hilos no es estandard de C ni de C++. Por ello, cada compilador los hace como quiere y puede. En visual c++ se hacen los hilos de distinta forma que en c++ en unix y posiblemente haya compiladores de c++ que no los soporten.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:threads

Publicado por cristian (8 intervenciones) el 25/12/2005 07:33:42
Generalmente los ide como MS visual c++ 6 (visual studio 6.0) traen componentes predefinidos , o los podes buscar en internet, pero todo componente sea microsoft , borland, o de otro proveedor devera invocar al api de windows para crear un hilo. Le recomiendo utilizar este conjunto de funciones y no los componentes
este es ejemplo de como crear hilos compatibles tanto en windows como linux

#ifndef WIN32

#include <pthread.h>
#include <sys/sem.h>
#include <sys/ipc.h>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#define _cdecl
unsigned long _beginthread(void (*)(void *), unsigned stack_size, void *lparam);
#endif


#ifndef WIN32

unsigned long _beginthread(void (* funcptr)(void *), unsigned stack_size, void *lparam)

{

pthread_t pt = 0;
int error = pthread_create(&pt, NULL, (void *(*)(void *))funcptr, lparam);
if (error) {
return (unsigned long)-1; // error.
}
//pr(("%s(%d) _beginthread() just started thread %d\n", _FL, pt));
return pt; // return thread id.

}

#endif // WIN32

static void _cdecl sendThreadLauncher(void *args)
{
printf("sendThreadLauncher Called.\n");
((socketClient *)args)->sendThread();
}

void socketClient::sendThread(){
//aca correra el hilo
};//sendThread

para windows define WIN32 y para unix no lo que le da portabilidad
suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar