guarda questo esempio:
codice:
#include <windows.h>
#include <iostream.h>
#include <stdlib.h>
DWORD funz1 (LPDWORD lpdwParam) {
for (int i = 0; ; i++)
{
int x = 0 + rand() % 1024;
//adatta alla tua risoluzione x e y
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;
}
questo dimostra che il programma farà due cose contemporaneamente: sposterà a casaccio il cursore del mouse mentre stampa all'infinito dei numeri. Per terminarlo fai CTRL-C non tentare di muovere il mouse perchè tanto si risposta subito.
Credo che il tuo prima non andava perchè due thread si contendevano la stessa risorsa: la console e quindi andavano in conflitto.