سلام.
فرق دو مدل برنامه نویسی زیر چیه و هر کدوم کجا استفاده میشه؟
public async Task<ActionResult> Index()
{
}
public ActionResult Index()
{
}
سلام.
فرق دو مدل برنامه نویسی زیر چیه و هر کدوم کجا استفاده میشه؟
public async Task<ActionResult> Index()
{
}
public ActionResult Index()
{
}
فرق در برنامه نویسی همزمان و غیر همزمان هست. ما دو نوع تفکر برای پیاده سازی در برنامه نویسی داریم یا همزمان دستورات اجرا بشوند یا غیر همزمان . یعنی دستورات تو در تو اجرا بشوند و بالاخره هر پروسسی زودتر تمام بشه کار خودش رو زودتر از موارد دیگه به پایان میبره. در حال عادی کدها پشت سر هم اجرا و تا قبلی تمام نشه شما باید منتظر بمانید البته در حالت async هم کنترلهای زیادی بر روی حالت های غیر همزمان وجود داره. فقط هم برای mvc نیست در کل سی شارپ قابل استفاده هست.
توضیحات کامل تر از سایت استاد نصیری:
دات نت فریم ورک، از زمان ارائه نگارش یک آن، از اعمال غیرهمزمان و API خاص آن پشتیبانی میکردهاست. همچنین این مورد یکی از ویژگیهای Win32 نیز میباشد. نوشتن کدهای همزمان متداول بسیار ساده است. در این نوع کدها هر عملیات خاص، پس از پایان عملیات قبلی انجام میشود، اما برای انجام اعمال طولانی مانند دریافت اطلاعات از وب، مناسب نبوده و سبب قفل شدن ترد اصلی برنامه میشوند. برای حل این مشکل، راهحلهای غیرهمزمانی از نگارشهای آغازین دات نت وجود داشتهاند؛ اما کار کردن با آنها ساده نبوده و در روالهای رخدادگردان و یا تردهای دیگری بجز ترد اصلی و رابط کاربری برنامه صورت میگیرند که هر کدام مشکلات خوانایی، نگهداری و توسعهی خاص خود را دارند. برای رفع این مشکلات، پشتیبانی توکاری از اعمال async در سیشارپ 5 صورت گرفته است که موضوع بحث دورهی جاری میباشد.