Funzione SwitchToThread (processthreadsapi.h)

Determina che il thread chiamante ceda l'esecuzione a un altro thread pronto per l'esecuzione sul processore corrente. Il sistema operativo seleziona il thread successivo da eseguire.

Sintassi

BOOL SwitchToThread();

Valore restituito

Se la chiamata alla funzione SwitchToThread ha causato il passaggio dell'esecuzione del sistema operativo a un altro thread, il valore restituito è diverso da zero.

Se non sono disponibili altri thread pronti per l'esecuzione, il sistema operativo non passa all'esecuzione a un altro thread e il valore restituito è zero.

Commenti

Il rendimento dell'esecuzione è attivo per un massimo di un intervallo di tempo di pianificazione del thread nel processore del thread chiamante. Il sistema operativo non passerà l'esecuzione a un altro processore, anche se tale processore è inattiva o esegue un thread con priorità inferiore.

Al termine dell'intervallo di tempo del thread restituito, il sistema operativo riprogramma l'esecuzione per il thread che produce. La riprogrammazione è determinata dalla priorità del thread di resa e dallo stato di altri thread disponibili per l'esecuzione.

Si noti che il sistema operativo non passerà a un thread che viene impedito l'esecuzione solo dal controllo della concorrenza. Ad esempio, una porta di completamento I/O o un pool di thread limita il numero di thread associati che possono essere eseguiti. Se il numero massimo di thread è già in esecuzione, nessun thread associato aggiuntivo può essere eseguito fino al termine di un thread in esecuzione. Se un thread usa SwitchToThread per attendere che uno dei thread associati aggiuntivi eselabori alcune operazioni, il processo potrebbe bloccarsi.

Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0400 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione processthreadsapi.h (include Windows.h in Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni di processi e thread

SuspendThread

Sospensione dell'esecuzione del thread

Discussioni