CodeShot
Midسختی 2 از ۵· در 80٪ مصاحبه‌های این حوزه پرسیده شده

چرا async void توصیه نمی‌شود؟

نشان کردن

پاسخ کوتاه

چون قابل Await نیست، مدیریت Exception آن دشوار است و فقط مناسب Event Handler است.

پاسخ کامل

متد async void را نمی‌توان از بیرون Await کرد، پس صدازننده نمی‌داند کی تمام می‌شود؛ اگر داخل آن Exception رخ دهد، مستقیماً روی SynchronizationContext پرتاب می‌شود و مدیریت آن سخت است. تنها استثنا Event Handlerهاست که امضای آن‌ها اجازه Task برگرداندن را نمی‌دهد.