.NET

Async/await & Pola

async/await, Task, ValueTask, ConfigureAwait, cancellation token, eksekusi paralel, deadlock

26 pertanyaan wawancaraยท
Senior
1

Apa peran utama kata kunci 'await' dalam metode asinkron?

Jawaban

Kata kunci await menangguhkan eksekusi metode asinkron hingga Task selesai, sekaligus membebaskan thread pemanggil agar dapat memproses tugas lain. Hal ini menghindari pemblokiran thread dan meningkatkan skalabilitas aplikasi. Tidak seperti Task.Wait() atau Task.Result yang memblokir thread, await memungkinkan penggunaan sumber daya thread pool secara efisien.

2

Mengapa async void harus dihindari kecuali untuk event handler?

Jawaban

Metode async void tidak dapat di-await dan exception yang dilempar di dalamnya tidak dapat ditangkap oleh kode pemanggil, menyebabkan aplikasi crash. Selain itu, melakukan unit testing pada metode async void tidak mungkin karena tidak ada Task untuk di-await. Event handler adalah pengecualian karena dipanggil oleh framework dan tidak dapat mengembalikan Task.

3

Dalam kasus penggunaan apa ValueTask<T> harus lebih dipilih daripada Task<T>?

Jawaban

ValueTask adalah value type yang menghindari alokasi heap ketika hasilnya sudah tersedia secara sinkron, seperti pada cache. Hal ini mengurangi tekanan pada garbage collector dalam skenario performa tinggi. Task selalu dialokasikan di heap meskipun hasilnya sinkron. Gunakan ValueTask hanya ketika peningkatan performa dapat diukur, karena penggunaan yang tidak tepat dapat menurunkan performa.

4

Batasan penting apa yang berlaku untuk ValueTask<T> dibandingkan dengan Task<T>?

5

Apa tujuan utama ConfigureAwait(false) dalam library .NET?

+23 pertanyaan wawancara

Kuasai .NET untuk wawancara berikutnya

Akses semua pertanyaan, flashcards, tes teknis, latihan code review dan simulator wawancara.

Mulai gratis