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 l'esecuzione del sistema operativo a un altro thread, il valore restituito è diverso da zero.
Se non sono presenti altri thread pronti per l'esecuzione, il sistema operativo non commuta l'esecuzione in un altro thread e il valore restituito è zero.
Commenti
Il rendimento dell'esecuzione è effettivo per un massimo di una sezione temporale di pianificazione del thread nel processore del thread chiamante. Il sistema operativo non cambierà l'esecuzione in un altro processore, anche se il processore è inattiva o esegue un thread di priorità inferiore.
Dopo aver trascorso la sezione temporale del thread di resa, l'esecuzione del sistema operativo viene riprogrammata per il thread di produzione. La riprogrammazione è determinata dalla priorità del thread di rendimento e dallo stato di altri thread disponibili per l'esecuzione.
Si noti che il sistema operativo non passa a un thread che non viene impedito di eseguire solo dal controllo di concorrenza. Ad esempio, una porta di completamento di 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 venga eseguita, il processo potrebbe essere deadlock.
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0400 o versioni successive. Per altre informazioni, vedere Uso delle intestazioni di Windows.
Requisiti
Requisito | Valore |
---|---|
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 (includere Windows.h in Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |