• 0
اورمان فقیهی محدث

چند نخی

سوال

با سلام، چطوری میتونم یک ترد ساده ایجاد کنم تا وقتی که از اینترنت اطلاعاتی رو میخونم برنامه هنگ نکنه؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تا کنون داده شده است

  • 0

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

 

private async Task RunAsync()
{
await Task.Delay(100);
//code
}

و برای صدا زدن تسک در تابعی دیگر

 

private async void AnotherFunction()
{
await RunAsync();
}

توجه کنید در خط اول درون تسک ، دستوری مبنی بر زمانی تعلیق هست که تسک قبل از شروع منتظر می مونه. این زمان رو معمولا در یه بازه ای ۵۰ تا ۵۰۰ میلی ثانیه تعریف میکنن که تاثیر قابل توجه ای در رسپانسیو بودن UI داره، و البته نوشتنش اختیاریه.

 

همچنین کیورد await باعث اجرای اسینک تسک میشه که مستلزم اینه کیورد async در تابع تعریف شده باشه.

اگر کیورد await رو قبل از صدا زدن تسک قرار ندید، تسک مثل یه تابع عادی اجرا میشه و همچنین پیغام هشداری رو پنجره Errors ویژال می بینید.

پسند شده توسط 4 کاربر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر


  • 0


await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                 {کد ها});


من از این روش استفاده کردم و جواب داده

پسند شده توسط 2 کاربر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مهمان
این موضوع برای عدم ارسال قفل گردیده است.