Midسختی 4 از ۵· در 55٪ مصاحبههای این حوزه پرسیده شده
Task و ValueTask چه تفاوتی دارند؟
☆نشان کردنپاسخ کوتاه
ValueTask در سناریوهایی که ممکن است بهصورت همزمان تکمیل شود Allocation را کاهش میدهد، اما پیچیدهتر است.
پاسخ کامل
ValueTask<T> یک Struct است و در مسیرهایی که نتیجه اغلب بلافاصله (Synchronously) آماده است از Allocation اضافه یک Task جلوگیری میکند؛ اما محدودیتهایی دارد (مثلاً نباید دوبار Await شود) و فقط در مسیرهای پرفورمنسمحور توصیه میشود.
