'void dönen arasındaki fark ne ve bir Görev dönüyor?
Çeşitli C bakıyor# Uyumsuz* *0, ve genel olmayan Task
geri dönüş Diğerleri biraz uyumsuz fonksiyonlar görüyorum örnekler CTP. Neden dönen bir Task<MyType>
kullanışlı veri döndürmek için arayan zaman uyumsuz işlemi tamamlar, ama çalıştığını gördüm bu bir tür dönüş Task
asla geri herhangi bir veri. Neden void
dönüş değil mi?
CEVAP
SLaks ve Killercam cevaplarını iyi. belki biraz daha fazla içerik eklemek istedim.
İlk soru async
işaretlenebilir ne olacak aslında.
Bir yöntem
async
işaretlivoid
,Task
Task<T>
dönebilirsiniz. Aralarındaki farklar nelerdir?
* *10 dönen zaman uyumsuz bir yöntem beklediğin ve görev tamamlandığında bir T. teklif
Task
dönen zaman uyumsuz bir yöntem beklediğin ve görev tamamlandığında, görev devamı çalıştırmak için planlanıyor.
Olamaz bekliyordu; void
dönen zaman uyumsuz bir yöntem bir "ateş ve unut" yöntemi. Zaman uyumsuz olarak çalışır, ve yapıldığı zaman söylemenin bir yolu var. Bu biraz garip; SLaks dediği gibi, normalde sadece işleyici zaman uyumsuz bir etkinlik yaparken ben bunu yapardım. Olayı harekete, işleyici yürütür; kimse gidip "bekliyor" görev tarafından döndürülen olay işleyicisi çünkü olay işleyicileri döndürmeyin görevleri ve bile yaptılar, ne kodu kullanırsınız Görev için bir şey? İlk etapta işleyicisi kontrol aktaran genellikle kullanıcı kodu değil.
İkinci soru, yorum, await
ed ne olabileceğine dair aslında
Ne tür yöntemler
await
ed olabilir mi? Void döndüren bir yöntemawait
ed olabilir mi?
Hayır, void döndüren bir yöntem beklenen olamaz. Derleyici GetAwaiter
örnek bir yöntem ya da bir uzantısı yöntemi nerede olabileceğini M().GetAwaiter()
, çağrı await M()
çevirir. Değer beklenen bir awaiter alabilirsiniz olmak zorundadır; açıkça void döndüren bir yöntem olan bir awaiter bir değer üretmez.
Task
-dönen yöntemleri awaitable değerleri üretebilir. Üçüncü şahıslar Task
-beklenen nesnelerin kendi uygulamaları oluşturmak için bekliyoruz ve onları bekliyor olacaktır. Ancak, bir şey dönmek ama void
, Task
Task<T>
async
yöntemleri bildirmek için izin verilmez.
Hizmet, zaman Uyumsuz Görev Ve İplik a...
Objective-C: kimlik ve void *arasındak...
'Görev arasındaki fark ne./Beklem...
Görev ve iplik arasındaki fark nedir?...
'bir YAZI arasındaki fark ne ve b...