public async void SomeEventHandler(EventArgs args) {
var myObject = await await Task.Factory.StartNew<Task<MyObject>>(DoSomethingAsync);
// do something with myObject
}
ve:
public async void SomeEventHandler(EventArgs args) {
var myObject = await DoSomethingAsync();
// do something with myObject
}
public async Task<MyObject> DoSomethingAsync() {
// do some work
await OpenSomeFileAsync();
return new MyObject();
}
arasında bir fark var mı
DoSomethingAsync'in "bazı işlerini yap" bölümünün hemen yeni bir görevde olacağını düşünüyorum. ilk durum, ama dürüst olmak gerekirse Görevler, uyumsuzluk ve bekleyişin nasıl çalıştığını tam olarak anlamadım ve eminim ki sadece kendim için çok karmaşık şeyler yapıyorum.
DÜZENLEME:
Bu soru hakkında bu metro örneğe bakarak geldi:
var unused = Task.Factory.StartNew(async() => { // some work... });
// unused is of type Task<TResult>
Deniyordum: MainPage.xaml.cs içinde Spesifik http://code.msdn.microsoft.com/windowsapps/Sharing-Content-Target-App-e2689782
, onlar bu var anonim bir async fonksiyonu kullanmadan yeniden çalışıp, merak etmeye başladım, neden bir async metodu yazıp, StartNew'i çağırmak ve bir async fonksiyonunu kullanmak yerine neden beklemiyorsunuz?
Neden bu şekilde yazmak ister? Yeni "async"/"await" anahtar kelimelerini kullanmanın tüm amacı, zorunda kalmamanızdı. –
Kötü bir örnek kod parçası gibi görünüyor –
Sadece kendime bir baktım ve ... Vay canına. Evet, "Resmi Windows SDK Örneği" kodu ** gerçekten kötü **! Sanırım "async" noktasını tamamen kaçırmayı başardılar! –