Código:
#include <Windows.h>
VOID WINAPI apcthread1()
{
for (ULONG i = 0; i < 5; i++)
{
printf("%u APC de hilo 1\n", i + 1);
Sleep(1000);
}
printf("terminando APC de hilo 1\n");
}
int WINAPI thread1()
{
printf("Inicio de hilo 1\n");
QueueUserAPC((PAPCFUNC)apcthread1, GetCurrentThread(), 0);
while (TRUE)
{
for (ULONG x = 0; x < 5; x++)
{
printf("%u Ejecutando hilo 1\n", x + 1);
Sleep(1000);
}
SleepEx(3000, TRUE);
}
printf("Fin de hilo 1\n");
return 0;
}
int main()
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)thread1, 0, 0, 0);
return 0;
}