Inserisci l'URL nella stringa dell'indirizzo del tuo browser. Ci vuole molto tempo per comparire nell'area cliente. Sei annoiato e digita un altro indirizzo e fai clic su entra. Quale pagina verrà visualizzata nel browser, prima o seconda?
Un problema simile si solleva quando si aggiorna la struttura del documento mentre si digita l'editor. In Eclipse hai una finestra struttura separata, che dovrebbe essere sincronizzata con il documento. Viene aggiornato ogni volta che si digita. Hai modificato il tuo documento, l'aggiornamento viene avviato di nuovo analisi o generazione. Nel frattempo, continui a digitare, iniziando un'altra analisi. Al termine del parser, aggiorna la finestra Struttura. Cosa succede se la prima analisi termina dopo la prima? La struttura obsoleta prevale!
Come risolvi questo problema nella programmazione asincrona? Dovresti controllare se la tua azione è obsoleta nella continuazione o annullare tutte le azioni in corso prima di avviarne di nuove?