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