«await» не ждет завершения вызоваC#

Место общения программистов C#
Ответить
Anonymous
 «await» не ждет завершения вызова

Сообщение Anonymous »

Я создаю приложение Metro.
В файле MainPage.xaml.cs я создаю экземпляр альбома следующим образом:

Код: Выделить всё

Album album = new Album(2012);  //With the album ID as its parameter.
ListView1.ItemsSource = album.Songs;
В Album.cs конструктор выглядит следующим образом:

Код: Выделить всё

public Album(int ID)
{
this.ID = ID;
Initialize();  //Serves as a wrapper because I have to call httpClient.GetStreamAsync() and "async" doesn't work for the constructor.
}
Наконец, метод Initialize:

Код: Выделить всё

private async void Initialize()
{
//...some code...
HttpClient cli = new HttpClient();
Stream SourceStream = await HttpClient.GetStreamAsync("http://contoso.com");
//...some code...
this.Songs = Parse(SourceStream);
}
Проблема в том, что когда он запускается в GetStreamAsync, он затем переходит к ListView1.ItemsSource = album.Songs непосредственно с значением album.Songs null.
Есть ли быстрое решение этой проблемы?

Подробнее здесь: https://stackoverflow.com/questions/122 ... on-of-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»