پرش به

چند نخی

آغاز شده توسط اورمان فقیهی محدث , دی ۲۳ ۱۳۹۵ ۰۱:۰۴ بعد از ظهر
UWP Treading MultiTreading C# HTTP Hang Crash

بهترین پاسخ Hesamom , ۲۳ دی ۱۳۹۵ - ۰۹:۴۹ بعد از ظهر

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

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

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

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

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

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


  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
2 پاسخ برای این موضوع

#1

اورمان فقیهی محدث
  • اورمان فقیهی محدث
  • آموزنده
  • کاربر
  • ستاره
  • 2 ارسال
  • مکان : تبریز

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


اندازه‌گیری درصد پیشرفت یک پروژه برنامه نویسی با شمارش تعداد سطرهای کدهای آن همانند اندازه گیری درصد پیشرفت ساخت یک هواپیما از طریق وزن کردن آن است!

Bill Gates


#2

m_develop
  • m_develop
  • کاربر
  • توسعه دهنده
  • ستارهستاره
  • 11 ارسال

await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                 {کد ها});
من از این روش استفاده کردم و جواب داده

  • Ramtin و اورمان فقیهی محدث تشکر کرده اند

#3

Hesamom
  • Hesamom
  • کاربر ثابت
  • توسعه دهنده
  • ستارهستارهستاره
  • 48 ارسال

  بهترین پاسخ

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

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

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

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

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

همچنین کیورد await باعث اجرای اسینک تسک میشه که مستلزم اینه کیورد async در تابع تعریف شده باشه.
اگر کیورد await رو قبل از صدا زدن تسک قرار ندید، تسک مثل یه تابع عادی اجرا میشه و همچنین پیغام هشداری رو پنجره Errors ویژال می بینید.
  • Ramtin, RaminMT, اورمان فقیهی محدث و 1 فرد دیگر تشکر کرده اند

CODE TO LEARN HOW TO CODE






همچنین به UWP, Treading, MultiTreading, C#, HTTP, Hang, Crash نیز برچسب خورده است