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

چرا نباید از .Result یا .Wait() استفاده کنیم؟

نشان کردن

پاسخ کوتاه

چون می‌توانند باعث Deadlock شوند، Thread را بلاک می‌کنند و کارایی را کاهش می‌دهند.

پاسخ کامل

.Result و .Wait() به‌صورت همزمان (Synchronous) منتظر Task می‌مانند و Thread صدازننده را بلاک می‌کنند؛ در محیط‌هایی با SynchronizationContext (مثل ASP.NET قدیمی یا UI) همین بلاک‌شدن می‌تواند به Deadlock منجر شود.

اشتباه رایج

❌ فراخوانی GetDataAsync().Result داخل یک متد Sync به‌جای پیاده‌سازی زنجیره async تا انتها.