Qual è la funzionalità "rendimento" in Windows 3.11?

6

Ho letto che Windows 3.11 utilizza il multitasking cooperativo, il che significa che il sistema operativo non esegue la pianificazione del processo ogni volta che lo desidera, ma il processo attualmente in esecuzione "produce" l'esecuzione sul sistema operativo ogni volta che il processo lo richiede, e quindi il sistema operativo sceglie il processo successivo da eseguire.

Ma quello che voglio sapere è qual è questa funzionalità di "rendimento", è una funzione API di Windows che un processo deve chiamare in più punti nel codice del processo?

    
posta rony_t 12.06.2017 - 17:04
fonte

2 risposte

15

È stato eseguito nella chiamata GetMessage.

Il cuore di un'applicazione Windows è qualcosa del tipo:

while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
    TranslateMessage(&Msg);
    DispatchMessage(&Msg);
}

Ogni iterazione riceve un messaggio e lo invia. Se non c'è un messaggio disponibile, blocca fino a quando un messaggio è disponibile. Sotto le finestre a 16 bit, la CPU è stata resa in attesa di un nuovo messaggio.

Alcune altre chiamate come Yield o SendMessage funzionerebbero allo stesso modo. Ma GetMessage era quello che la maggior parte delle applicazioni GUI avrebbe utilizzato principalmente.

Fonte

    
risposta data 12.06.2017 - 17:43
fonte
2

A parte la richiesta esplicita a Yield() , ci sono altre API fornite da Windows che potenzialmente devono aspettare che un altro processo fornisca una risposta, come il cuore del messaggio pump GetMessage() , che richiede una finestra per informazioni con SendMessage() e molti altri.

    
risposta data 12.06.2017 - 18:05
fonte

Leggi altre domande sui tag