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