CodeShot
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).