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.