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());
