در این مقاله و ویدئوی یوتیوب جدید، به این موضوع پرداخته شده است که چرا استفاده از Task.WhenAll بدون محدودیت خطرناک است و SemaphoreSlim چگونه میتواند سرور شما را نجات دهد. استفاده از async/await به طور خودکار برنامه را "مقیاسپذیر" نمیکند. بدون مکانیسم محدودسازی (throttling)، کد async میتواند به سرعت منابع سرور را مصرف کند. اگر 1000 داده را با استفاده از یک API خارجی پردازش کنید، .NET سعی میکند تقریباً 1000 task را به طور همزمان اجرا کند. این میتواند منجر به اتمام سوکت، گرسنگی استخر پایگاه داده و افزایش RAM شود. SemaphoreSlim یک راه سبک در .NET برای محدود کردن تعداد taskهایی است که میتوانند به طور همزمان اجرا شوند.
مشاهده مطلب اصلی