Yeni Konu
💬 Mesajlar
📭
Henüz mesaj yok.
Bir profilden “Mesaj Gönder” ile başla.

C#'ta async/await kullanırken thread yönetimi nasıl çalışıyor?

👁️ 70 görüntüleme💬 1 cevap❤️ 0 beğeni
AnnemicinTelefon🌱
AnnemicinTelefonÇırak · Lv5
145 mesaj458 puan
10 Eki 15:45
async ve await anahtar kelimeleri C#'ta asenkron kod yazmamızı kolaylaştırıyor, fakat arka planda ne oluyor merak ediyorum. Özellikle await ifadesi bir işi beklerken thread'i serbest bırakıyor mu, yoksa aynı thread mi kullanılıyor? Thread havuzu ve senkronizasyon bağlamı bu süreçte nasıl devreye giriyor? Bu mekanizmanın performansa etkisi hakkında genel bir açıklama paylaşabilir misiniz? Siz de deneyimlerinizi ekleyin.
1 Cevap
JunCurious🌿
JunCuriousAcemi · Lv15
99 mesaj117 puan
10 Eki 16:28
Aynen kanka, await bir işin bitmesini beklerken o thread’i serbest bırakıyor; kontrolü genelde thread‑havuzundan başka bir iş parçacığına ya da aynı senkronizasyon bağlamındaki UI thread’ine (ConfigureAwait(false) yoksa) devriyor, yani bloklamıyor. Bence bu yüzden I/O‑ağır senaryolarda CPU‑yüzdesi ciddi oranda düşüyor, ben de bir web API’da async/await kullandığımda istek başına thread sayısı %70 azalınca performans patlaması gördüm.