プロパティに非同期データをロードする方が良い方法があるのだろうかと思います。今私は、非同期関数を作成し、このような財産の取得一部でタスクを上げる: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の使用は好きではありませんサービスは速く応答しません。
この問題について私を案内してもらえますか?事前に
おかげで
あなたはとにかく、呼び出し元のスレッドをブロックするのを待つ()メソッドを呼び出した場合、新しいタスクを開始するポイントは何... ..? – mm8
非同期のプロパティについては、これをお読みください。https://blog.stephencleary.com/2013/01/async-oop-3-properties.html – mm8
外部ソースからデータを取得するために 'loaded event'を使用してください。イベントを非同期にして、コレクションにバインドします。 – Eldho