Midسختی 3 از ۵· در 58٪ مصاحبههای این حوزه پرسیده شده
چرا نباید از Thread.Sleep() استفاده کنیم؟
☆نشان کردنپاسخ کوتاه
چون Thread را بلاک میکند؛ در بلاکهای Async باید از Task.Delay() استفاده شود.
پاسخ کامل
Thread.Sleep() بهصورت همزمان (Synchronous) اجرا میشود و Thread را کاملاً مسدود میکند؛ Task.Delay() غیرهمزمان است، Thread را آزاد میگذارد و از CancellationToken هم پشتیبانی میکند.
اشتباه رایج
❌ استفاده از Thread.Sleep(1000) داخل یک متد async بهجای await Task.Delay(1000, stoppingToken).
