
Async/await & Desenler
async/await, Task, ValueTask, ConfigureAwait, cancellation token, paralel yürütme, deadlock
1Asenkron bir metotta 'await' anahtar kelimesinin temel rolü nedir?
Asenkron bir metotta 'await' anahtar kelimesinin temel rolü nedir?
Cevap
await anahtar kelimesi, Task tamamlanana kadar asenkron metodun yürütülmesini askıya alırken, çağıran thread'i serbest bırakarak diğer görevleri işleyebilmesini sağlar. Bu, thread'in bloklanmasını önler ve uygulamanın ölçeklenebilirliğini artırır. Thread'i bloklayan Task.Wait() veya Task.Result'ın aksine, await thread pool kaynaklarının verimli kullanımını sağlar.
2Olay işleyicileri (event handler) dışında async void neden kullanılmamalıdır?
Olay işleyicileri (event handler) dışında async void neden kullanılmamalıdır?
Cevap
Async void metotları await edilemez ve içinde fırlatılan exception'lar çağıran kod tarafından yakalanamaz, bu da uygulamanın çökmesine neden olur. Ayrıca, await edilecek bir Task olmadığından async void metotlarını birim test etmek imkansızdır. Olay işleyicileri istisnadır çünkü framework tarafından çağrılır ve Task döndüremezler.
3Hangi kullanım durumunda ValueTask<T>, Task<T>'ye tercih edilmelidir?
Hangi kullanım durumunda ValueTask<T>, Task<T>'ye tercih edilmelidir?
Cevap
ValueTask, sonuç cache gibi senkron olarak zaten mevcut olduğunda heap tahsisini önleyen bir value type'tır. Bu, yüksek performanslı senaryolarda garbage collector üzerindeki baskıyı azaltır. Task, sonuç senkron olsa bile her zaman heap'te tahsis edilir. Yanlış kullanımı performansı düşürebileceğinden, ValueTask'ı yalnızca performans kazanımları ölçülebilir olduğunda kullanın.
Task<T>'ye kıyasla ValueTask<T> için geçerli olan önemli kısıtlama nedir?
Bir .NET kütüphanesinde ConfigureAwait(false)'in temel amacı nedir?
+23 mülakat soruları
Diğer .NET mülakat konuları
C# Temelleri
LINQ & Delegates
C# Dil Temelleri
ASP.NET Core Temelleri
ASP.NET Core İstek Yaşam Döngüsü
Configuration & Settings
Uygulama Yaşam Döngüsü
Dependency Injection
Entity Framework Core
Minimal APIs
Web API Geliştirme
ASP.NET Core'da Async
Authentication & Authorization
HttpClient & Networking
JSON Serileştirme
Entity Framework Core İleri Düzey
C# Gelişmiş Özellikleri
Clean Architecture
Logging, Monitoring & Observability
Birim Testleri & xUnit
Entegrasyon Testleri
Docker & Containerization
NuGet Paket Yönetimi
Memory Management & GC
Reaktif programlama
.NET Tasarım Desenleri
Performans Optimizasyonu
Güvenlik ve Best Practices
SignalR ve Gerçek Zamanlı
Microservices Mimarisi
Bir sonraki mülakatın için .NET'de uzmanlaş
Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.
Ücretsiz başla