Stavo sviluppando un programma per ottenere le coordinate geografiche (utilizzando un servizio di bing maps) di alcuni miei indirizzi e ho avuto un problema sulla sincronizzazione.
Vi illustro il problema:
Ho creato una mia classe Indirizzo, con tutte le property necessarie.
Ho creato una List di elementi di tipo indirizzo.
Per ottenere le coordinate geografiche avevo semplicemente pensato di fare un ciclo nel seguente modo
Dove Source è la mia lista di elementi indirizzo. Per ottenere il risultato, restituitomi dal servizio dopo aver lanciato il metodo GeocodeAsync, ho gestito l’evento GeodoceCompleted.
Ma nel complesso c’era un problema prima ancora che ottenessi il risultato della prima richiesta il ciclo for aveva già finito e aveva inviato altre richieste creando un disastro. Per risolvere ho utilizzato la classe AutoResetEvent
ed l’ho utilizzato così nel cilco
mentre nella gestione dell’evento GeocodeComplete
Ora saprò dove andare a trovare la soluzione nel caso (anche se difficile) la dimenticassi o nel caso servisse a qualcuno.
Francesco Valentino