در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

iran58

مشکل در اجرا Asynchronouse در mvc.net

سلام

من کد زیر را نوشته ام

public async Task<ActionResult> Index()
		{
			ViewBag.Status = "False";
			await SendMessage();
			return View();
		}
		
private async Task SendMessage()
		{
			Operation.DiscsList.Clear();
			await Task.Run(() =>
		   {
			   var result = new List<Disc>();
			   foreach (var reader in list)
			   {
				   Operation.List.Add(new DiscsList
				   {
					   Id = AESAlgorithm.DecryptText(reader.Id),
					   name = AESAlgorithm.DecryptText(reader.name),
					   family = AESAlgorithm.DecryptText(reader.family),
					   tel=AESAlgorithm.DecryptText(reader.tel),
				   });
			   }
		   });
		}		

بخاطر سنگین (زیاد) بودن اطلاعات حدود3 دقیقه طول میکشد

ولی تا اتمام عملیات صفحه لود نمیشود

من باید چه تغییری ایجاد کنم

صفحه سریع لود شود و عملیات در پس زمینه انجام پذیرد

باتشکر

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
حسین احمدی

سلام، وقت بخیر

عبارت های async و await به این معنا نیست که صفحه نمایش داده بشه، بعد اطلاعات load بشه، شما زمانی که از async و await استفاده می کنید، در حقیقت thread تا زمان تکمیل شدن عملیات آزاد میشه و به کارهای دیگه میرسه و دوباره بعد از تکمیل عملیات بر میگرده به جایی که آزاد شده بود.

شما برای اینکه صفحه لود بشه و بعد اطلاعات رو نمایش بدید، عملیات دریافت اطلاعات رو داخل یک اکشن جداگانه بنویسید و بعد بوسیله ajax اطلاعات رو بگیرید و نمایش بدید. به این صورت ابتدا صفحه لود میشه و بعد اطلاعات نمایش داده میشن.

لطفاً سوال خود را در انجمن مطرح کنید، به سوالات در پیام خصوصی پاسخ داده نخواهد شد
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....