Primo piano e sfondo Windows

Ogni processo può avere più thread di esecuzione, e ciascun thread può creare finestre. Il thread che ha creato la finestra con cui l'utente sta attualmente lavorando è chiamato il thread in primo piano, e la finestra viene chiamata la finestra in primo piano. Tutti gli altri thread sono thread in background, e le finestre create da un thread in background sono chiamate windows sfondo.

Ogni thread dispone di un livello di priorità che determina la quantità di tempo di CPU che riceve il thread. Anche se un'applicazione può impostare il livello di priorità dei suoi thread, normalmente il thread in primo piano ha un livello di priorità leggermente superiore rispetto al thread in background. Perché ha una priorità più alta, il thread in primo piano riceve più tempo di CPU del thread in background. Il thread in primo piano ha una priorità di base normale di 9; un thread in background ha una priorità di base normale di 7.

L'utente imposta la finestra in primo piano facendo clic su una finestra, o usando l'alt + tab o la combinazione di tasti alt + esc. Un'applicazione imposta la finestra in primo piano, utilizzando la funzione SetForegroundWindow . Se la nuova finestra in primo piano è una finestra di primo livello, il sistema attiva in caso contrario, attiva la finestra associata di primo livello. Un'applicazione recupera un handle per la finestra in primo piano, utilizzando la funzione GetForegroundWindow . Per verificare se la finestra dell'applicazione è attiva, confrontare l'handle restituito da GetForegroundWindow a quella della finestra dell'applicazione.