Ne zaman Görev kullanırım.() Verim?
Zaman uyumsuz bekliyor/kullanma ve Task
çok çalışıyorum ama asla Task.Yield()
kullanarak ve tüm açıklamalara rağmen dürüst olmak gerekirse, bu yöntem gerekir neden anlamıyorum.
Biri Yield()
gerekli olduğu iyi bir örnek verebilir misiniz?
CEVAP
async
/await
kullandığınızda await FooAsync()
yaptığınızda dediğiniz yöntem aslında uyumsuz olarak çalışacağını garanti yok. İç uygulama tamamen senkronize bir yolu kullanarak dönmek ücretsizdir.
Eğer sen yapmak bir API burada kritik olan yok engelleyebilir ve size biraz zaman uyumsuz kod ve orada bir şans bu denilen yöntem çalışacaktır eşzamanlı olarak (etkili engelleme) kullanarak await Task.Yield()
irade gücü yöntemi için zaman uyumsuz ve dönüş kontrolü bu noktada. Kodun geri kalanı daha sonra bu aşamada, hala eşzamanlı olarak çalışabilir () geçerli bağlama göre yürütülür.
Bu da bazı "uzun" başlatma, yani: . koşu gerektiren bir zaman uyumsuz yöntem yaparsanız faydalı olabilir
private async void button_Click(object sender, EventArgs e)
{
await Task.Yield(); // Make us async right away
var data = ExecuteFooOnUIThread(); // This will run on the UI thread at some point later
await UseDataAsync(data);
}
Task.Yield()
ara vermeden, bu yöntem zaman uyumlu await
İlk Çağrı bir şekilde yürütülür.
zaman uyumsuz/Görev vs bir boşluk dönm...
Ne zaman bir varsayılan kurucu yerine ...
'Görev arasındaki fark ne./Beklem...
Ne zaman süper kullanırım() Java?...
Ne zaman uyumsuz bir Görev<T> yö...