Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 31433|Yanıt: 5

[Kaynak] .net/c# Async/await ile görev sınıfı

[Bağlantıyı kopyala]
Yayınlandı 20.10.2017 22:32:17 | | |
Görev sınıfı

Görev sınıfı, .NET 4.0'dan sonra sağlanan asenkron bir işlem soyutlamasıdır ve System.Threading.Tasks.Task.Task'a tam yol sunulur.

Görev sınıfı, dönüş değeri olmayan asenkron işlemleri temsil etmek için kullanılır ve geri dönüş değerlerine sahip asenkron işlemler için Görev sınıfının Görev alt sınıfı <TResult>kullanılmalıdır.
Görev sınıfı tarafından oluşturulan görevler iş parçacığı havuzuna eklenir.

<TResult>Görev/Görev sınıfının ana yapıcıları şunlardır:


Oluşturulduktan sonra, görev Start() yöntemiyle başlatılabilir:


Gerçek geliştirmede, yeni görevler oluşturmak ve başlatmak için Task sınıfının statik yöntemi Run() veya fabrika sınıfı TaskFactory'nin üye yöntemi StartNew() daha sık kullanılır.

Görev sınıfındaki bazı yaygın yöntemler:


asenkron/await anahtar kelimesi

C# 5.0, dil seviyesinde eşzamanlılık için daha iyi destek sağlayan asenkron ve await anahtar kelimelerini tanıttı.

Asenkron yöntemleri işaretlemek için kullanılır:
Asenkron anahtar kelime bağlamsal bir anahtar kelimedir ve yalnızca bir yöntem ve Lambda değiştirilirken anahtar kelime olarak ele alınır, diğer alanlarda ise tanımlayıcı olarak kabul edilir.
Asenkron anahtar kelime statik yöntemleri işaretleyebilir, ancak giriş noktalarını (Main() yöntemleri) işaretleyemez.
Asenkron etiketlenmiş yöntemin dönüş değeri <TResult>Görev, Görev veya boş olmalıdır.
Await, asenkron yöntemin sonucunu beklemek için kullanılır:
Await anahtar kelimesi de bağlamsal bir anahtar kelimedir ve sadece asenkron etiketli yöntemde anahtar kelime olarak kabul edilir.
Await anahtar kelimesi, asenkron yöntem ve Task, <TResult>ve Task'dan önce asenkron görev yürütülmesinin sonunu beklemek için kullanılabilir.
Basit bir asenkron yöntem yapısı şöyledir:
Metodun asenkron anahtar kelimesiyle işaretlendiği anlamına gelmez, asenkron bir yöntemdir ve asenkron yöntemin içinde doğrudan görünen ifadeler de eşzamanlı olarak çalıştırılırAsenkron olarak yürütülen içerik, Görev sınıfı kullanılarak çalıştırılmalıdır
Aslında, herhangi bir await ifadesi içermeyen bir asenkron yöntem senkron olarak çalıştırılır ve derleyici bu noktada bir uyarı verir.

Basit bir örnek, ekranda eşzamanlı olarak içerik çıkarmak için asenkron/await kullanmak:

Çıktı: (Mono 4.4.0 && ArchLinux x64)

Yukarıdaki programdan, asenkron anahtar kelime etiketli asenkron yöntemde, await kullanılmadan önceki kodun senkron olarak çalıştırıldığını ve await çağrıldıktan sonra kalan kodun ayrı bir iş parçacığında asenkron olarak çalıştığını görmek zor değildir.





Önceki:fsadf{:1_2:}
Önümüzdeki:DinSharp a. NET(C#) HTTP helper class component
Yayınlandı 1.11.2017 19:57:12 |
Bir bak, bak, bak
Yayınlandı 29.01.2019 09:37:53 |
Baidu'da uzun süre aradım #async Görev Çağırış()Kendimi ayakta buldumYukarıdaki yöntem, Görev sınıfının Invoke metodunu döndürmek için asenkron anahtar kelimeyi kullanır ve bu aynı zamanda iş parçacığı problemini de çözer, bu tüm fonksiyonun anlamı nedir?
Yayınlandı 29.01.2019 21:14:36 |
Bu gerçekten iyi bir şey ve zamanım olduğunda böyle bir paylaşım yazacağım
Yayınlandı 15.02.2019 16:17:22 |
Çıktı sonucu asenkron yürütmenin etkisini net olarak göremez ve asenkron giriş eşzamanlı olmalıdır
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com