Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Sleep y Thread etre otros

Aqui programadores en la plataforma Win32 con Visual C++ de Microsoft...

Moderador: latindeveloper

Sleep y Thread etre otros

Notapor ibarra el Lun Sep 26, 2005 7:56 am

Saludos a todos los latindevelopers,


Alguien puede decirme que significa esta linea:

while(1) ost::Thread::sleep(1000);
y como la puedo cambiar por otra cosa sin usar ost.


y que pasa cuando hacemos:

while(1)
{
Sleep(5);
}


tengo un programa que cuando pongo esto funciona y cuando lo quito deja de funcionar ... es un programa que usa una dll que comunica con un hardware ...

Creo que mi problema es que no entiendo muy bien los thread de ejecucion ...

Les agradezco de antemano toda su ayuda ....
TENGAN UN BUEN DIA ...
ibarra
Usuario Activo
Usuario Activo
 
Mensajes: 34
Registrado: Vie Abr 15, 2005 8:26 am

Re: Sleep y Thread etre otros

Notapor latindeveloper el Lun Sep 26, 2005 12:12 pm

El primro es un bucle infinito que espra 1000 milisegundos (01 segundo) en cada iteracion.

El segungo hace lo mismo pero es tiempo es mas corto 05 milisegundos.
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Re: Sleep y Thread etre otros

Notapor DJK el Lun Sep 26, 2005 6:53 pm

Hola

Sleep: esta función se encarga de suspender la ejecución del Thread o Hilo que este corriendo o que hayas especificado por almenos el intervalo de tiempo que hayas especificado; oviamente muy tipico de uso en las dll ya ke una función mucho mas avanzada o extendida es SleepEx, ke tambien se encarga de hacer casi lo mismo pero esta espera un evento que pueda ocurrir, puede ser una I/O que seria devuelta por el CALLBACK de una función o una llamada asincrona a un procedimiento de tipo Thread tambien que este en cola o que este fuera del tiempo que has pre establecido, e inclusive puedes utilizar otras funciones ke van de la mano con esta MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx, o WaitForMultipleObjectsEx, entre otras.

Ejemplo:
Código: Seleccionar todo
   LPVOID lpvData;

  // Obtenemos el dato del puntero para el Thread ke esta corriendo
   lpvData = TlsGetValue( dwTlsIndex );

   //Verificamos ke no haya ningun error
   if ( ( lpvData == 0 ) && ( GetLastError() != 0 ) )
      ErrorExit("Error en la función TlsGetValue");

   // Usamos el dato almacenado para el Thread actual e imprimimos. 
   printf( "Información: Thread %d: lpvData = %lx \n", GetCurrentThreadId(), lpvData );
   
  // suspendemos la ejecución por 5 segundos
   Sleep(5000);


Para mayor información acerca del uso de estas funciones puedes consultar el SDK de windows.

Saludos
Your Kung Fu is not So Good!!!
Avatar de Usuario
DJK
Usuario Activo
Usuario Activo
 
Mensajes: 24
Registrado: Vie Jun 20, 2003 10:37 am
Ubicación: Puno - Perú

Re: Sleep y Thread etre otros

Notapor ibarra el Mar Sep 27, 2005 2:55 am

Muchas Gracias hermano ... hasta la proxima

DJK escribió:Hola

Sleep: esta función se encarga de suspender la ejecución del Thread o Hilo que este corriendo o que hayas especificado por almenos el intervalo de tiempo que hayas especificado; oviamente muy tipico de uso en las dll ya ke una función mucho mas avanzada o extendida es SleepEx, ke tambien se encarga de hacer casi lo mismo pero esta espera un evento que pueda ocurrir, puede ser una I/O que seria devuelta por el CALLBACK de una función o una llamada asincrona a un procedimiento de tipo Thread tambien que este en cola o que este fuera del tiempo que has pre establecido, e inclusive puedes utilizar otras funciones ke van de la mano con esta MsgWaitForMultipleObjectsEx, WaitForSingleObjectEx, o WaitForMultipleObjectsEx, entre otras.

Ejemplo:
Código: Seleccionar todo
   LPVOID lpvData;

  // Obtenemos el dato del puntero para el Thread ke esta corriendo
   lpvData = TlsGetValue( dwTlsIndex );

   //Verificamos ke no haya ningun error
   if ( ( lpvData == 0 ) && ( GetLastError() != 0 ) )
      ErrorExit("Error en la función TlsGetValue");

   // Usamos el dato almacenado para el Thread actual e imprimimos. 
   printf( "Información: Thread %d: lpvData = %lx \n", GetCurrentThreadId(), lpvData );
   
  // suspendemos la ejecución por 5 segundos
   Sleep(5000);


Para mayor información acerca del uso de estas funciones puedes consultar el SDK de windows.

Saludos
ibarra
Usuario Activo
Usuario Activo
 
Mensajes: 34
Registrado: Vie Abr 15, 2005 8:26 am


Volver a Visual C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados