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

چه زمانی از Task.Run() استفاده می‌کنیم؟

نشان کردن

پاسخ کوتاه

برای انتقال عملیات CPU-Bound به Thread Pool؛ نه برای عملیات I/O.

پاسخ کامل

Task.Run یک کار سنگین محاسباتی (CPU-Bound) را به یک Thread دیگر در Thread Pool منتقل می‌کند تا Thread اصلی آزاد بماند. برای عملیات I/O (شبکه، فایل، دیتابیس) که خودشان به‌صورت Async پیاده‌سازی شده‌اند، نیازی به Task.Run نیست.

مثال کد

var result = await Task.Run(() => HeavyComputation());