Questo esempio mostra come far fare due cose contemporaneamente ad un programma: spostare a casaccio il cursore del mouse e stampare numeri all'infinito:
----------------------
#include <windows.h>
#include <iostream.h>
#include <stdlib.h>
DWORD funz1 (LPDWORD lpdwParam) {
for (int i = 0; ; i++)
{
//adattare i due numeri alla vostra risoluzione
int x = 0 + rand() % 1024;
int y = 0 + rand() % 768;
SetCursorPos(x, y);
}
return 0;
}
int main () {
DWORD dwThreadId, dwThrdParam = 1;
cout << "Ciao, mentre stampo all'infinito i numeri l'altro\nthread muove a caso il cursore del mouse\n";
HANDLE thread = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE) funz1, &dwThrdParam, 0, &dwThreadId);
for (int i = 0; ; i++)
{
cout << "Ciclo numero " << i << " premere CTRL-C per terminare"<<endl;
}
return 0;
}
--------------------------------
Il trucco per far andare l'altro thread è questo:
HANDLE thread = CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE) funz1, &dwThrdParam, 0, &dwThreadId);
Dove funz1 è la funzione che conterrò il flusso da eseguire contemporaneamente.
Per terminare questo programma fate CTRL-C nella console, il mouse sarà ovviamente occupato a mostrare il tip.
Aggiungi un commento