我想知道是否有更好的方法來將異步數據加載到屬性中。現在我創建一個異步功能,在這樣的屬性的Get部分提出一個任務:MVVM c#如何將異步數據加載到屬性中?
private ObservableCollection<CProyecto> prope;
public ObservableCollection<CProyecto> Prope
{
get
{
if (prope == null)
{
Task.Run(()=> LoadData()).Wait();
}
return proyectos;
}
set
{
prope = value;
RaisePropertyChanged();
}
}
async private Task LoadData()
{
Prope = await clsStaticClassDataLoader.GetDataFromWebService();
}
這種方法的工作原理,但我不喜歡使用.Wait的,因爲可以隨時鎖定屏幕,如果該服務無法快速響應。
你能指導我這件事嗎?
在此先感謝
什麼,如果你調用wait()方法無論如何阻塞調用線程,開始一個新的任務點.. ..? – mm8
關於異步屬性,您應該閱讀以下內容:https://blog.stephencleary.com/2013/01/async-oop-3-properties.html – mm8
使用「加載事件」從外部源獲取數據。使事件異步並綁定到您的集合。最糟糕的是 – Eldho