.NET

Async/await & Desenler

async/await, Task, ValueTask, ConfigureAwait, cancellation token, paralel yürütme, deadlock

26 mülakat soruları·
Senior
1

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.

2

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.

3

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.

4

Task<T>'ye kıyasla ValueTask<T> için geçerli olan önemli kısıtlama nedir?

5

Bir .NET kütüphanesinde ConfigureAwait(false)'in temel amacı nedir?

+23 mülakat soruları

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