я создал для Windows Phone 8.0 Silverlight App метод асинхронной GetStreetNameWindows Phone 8 - Получение Multiple названия улиц
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;
}
и я называю это с помощью оператора AWAIT внутри для цикла:
for (int i = 0; i < Route.Count; i++)
{
ListBox.Items.Add(await GetStreetName(i));
}
, но я всегда получаю только название улицы первого загруженного геопозиции, и я понятия не имею, почему (я думал, что ожидающий оператор ждет, пока не будет закончен асинхронный метод).
Дополнительная информация: Я только что увидел, что на этом коротком фрагменте это не на 100%, название улицы и маршрут являются глобальными «переменными». Маршрут - это список кортежей, где первый элемент является геокоординатным.
Как исправить эту проблему?