I für Windows Phone 8.0 Silverlight App ein Asynchron-Methode erstellt GetStreetNameWindows Phone 8 - Erste Mehrere Straßennamen
string streetname;
private async Task<string> GetStreetName(int i)
{
MapAddress address;
ReverseGeocodeQuery query = new ReverseGeocodeQuery();
query.GeoCoordinate = Route[i].Item1;
query.QueryCompleted += (s, e) =>
{
if (e.Error != null)
return;
address = e.Result[0].Information.Address;
streetname = address.Street;
};
query.QueryAsync();
return streetname;
}
und ich nenne es den await Operator innerhalb einer for-Schleife:
for (int i = 0; i < Route.Count; i++)
{
ListBox.Items.Add(await GetStreetName(i));
}
aber ich bekomme immer nur den Straßennamen der ersten geladenen Geoposition zurück und ich habe keine Ahnung warum (ich dachte, der Warteoperator wartet, bis die Async-Methode beendet ist).
Zusätzliche Informationen: Ich habe gerade gesehen, dass dies an diesem kurzen Ausschnitt nicht 100% klar ist, Straßenname und Route sind globale "Variablen", Route ist eine Tupelliste, wobei der erste Gegenstand eine Geo-Koordinate ist.
Wie kann ich dieses Problem beheben?