Я думаю, що мій приклад нижче може слідувати підходу Стефана-Клірі, але я хотів навести закодований приклад. Це для використання в контексті зв'язування даних, наприклад, Xamarin.
Конструктор класу - або взагалі встановник іншого властивості, від якого він залежить - може викликати асинхронічну порожнечу, яка заповнить властивість після завершення завдання без необхідності очікування чи блоку. Коли він нарешті отримає значення, він оновить ваш інтерфейс користувача через механізм NotifyPropertyChanged.
Я не впевнений у будь-яких побічних ефектах виклику айсн-пустоти від конструктора. Можливо, коментатор розробить питання щодо помилок тощо.
class MainPageViewModel : INotifyPropertyChanged
{
IEnumerable myList;
public event PropertyChangedEventHandler PropertyChanged;
public MainPageViewModel()
{
MyAsyncMethod()
}
public IEnumerable MyList
{
set
{
if (myList != value)
{
myList = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("MyList"));
}
}
}
get
{
return myList;
}
}
async void MyAsyncMethod()
{
MyList = await DoSomethingAsync();
}
}