C# içinde uyumsuz programlamada yeniyim. Async kullanmayla ilgili motivasyonum, bir grup arka plan işçisinin veya açık iş parçacığının kullanılmasına gerek kalmadan, win form uygulamalarında UI iş parçacıklarını kilitlemekten kaçınmaktır. Bu benim şu andaki anlayışımdır. Bir awaitable fonksiyon üzerindeki bekliyor amacıylaKendimi sarıcı işlevlerini yazarken async işlevini bekliyorum. Bu desen nasıl önlenir?
, çağıran işlevi zaman uyumsuz olması gerekir. Eh,
Temelde bazı araya saldırdığınıpublic class SomeViewModel
{
private Thing m_thing;
public SomeViewModel()
{
ReloadThing();
}
public Thing Thing
{
get {
return m_thing;
}
protected set {
m_thing = value;
NotifyPropertyChanged();
}
}
public async void ReloadThing()
{
Thing = await FetchThing();
}
private async Task<Thing> FetchThing()
{
// entity framework code
return await DbSet<Things>.SingleAsync();
}
}
Bence (Form) için bir MVVM tarzı görünümü modeline girişimi ... kendimi sürekli şu kalıbı kullanarak bulduk.
Fakat, desen sadece bu yüzden bekliyor kullanabilirsiniz zaman uyumsuz sarıcı işlevidir. Burada kullanmam gereken daha iyi bir yaklaşım var mı?
FetchThing yöntemine ihtiyacınız olup olmadığını mı soruyorsunuz? Ya da her iki yöntemde async olmaktan daha kolay bir yol olup olmadığını mı merak ediyorsunuz? –
Her şeyden önce sorulan soru, böyle bir görünüm modelinde verileri engellemeyen bir şekilde yüklemek için daha doğrudan bir yol olup olmadığıdır, böylece bir görünüm (kazanç formu) bu asenkron veriler tarafından desteklenen bir özelliğe bağlanabilir mi? Bu benim durumuma en özel soruyla ilgili. – Ryan