Telegram Group & Telegram Channel
به نحوه ی صدا زدن دو تابع زیر دقت کنید:
new Task(async () => throw new NotImplementedException()).Start();

Task.Run(async () => throw new NotImplementedException());


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

چرا این اتفاق میوفته؟
چون سازنده ی Task متد Func<Task?> رو پیاده سازی نکرده، این یعنی ورودی شما به عنوان کانستراکتور یا سازنده مستقیم به یک Action تبدیل شده و وارد سازنده ی کلاس میشه.وقتی شما به یک Action ورودی async میدید این درواقع برای شما مثل یک تابع async void عمل میکنه و اگر Exception ای اونجا رخ بده چون هیچکجا هندل نشده و باعث میشه اپ شما کرش کنه.
راه کارش اینه که شما try catch بذارید و جلوی این مشکل رو بگیرید.

اما روش بهینه اش اینه که بذارید توسط خود Task.Run این اتفاق بیوفته چون خود Task خطاهارو به نحوی هندل میکنه که unhandled exception نخورید و باعث میشه اپ شما کرش نکنه اما لاگ کردن این نوع خطاها نیازمند یک کلاس Helper هست که با پیاده سازیش خودتون میتونید توی کارهای پس زمینه ی خودتون لاگ بذارید که اگر خطایی خورد متوجه عملکرد نرم افزار بشید.

پس مراقب باشید که چطوری از Task استفاده می کنید.

#تخصصی
#سی_شارپ
#تسک
#Task
#Thread

کانال تلگرام:
@CsharpTips



tg-me.com/CsharpTips/349
Create:
Last Update:

به نحوه ی صدا زدن دو تابع زیر دقت کنید:

new Task(async () => throw new NotImplementedException()).Start();

Task.Run(async () => throw new NotImplementedException());


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

چرا این اتفاق میوفته؟
چون سازنده ی Task متد Func<Task?> رو پیاده سازی نکرده، این یعنی ورودی شما به عنوان کانستراکتور یا سازنده مستقیم به یک Action تبدیل شده و وارد سازنده ی کلاس میشه.وقتی شما به یک Action ورودی async میدید این درواقع برای شما مثل یک تابع async void عمل میکنه و اگر Exception ای اونجا رخ بده چون هیچکجا هندل نشده و باعث میشه اپ شما کرش کنه.
راه کارش اینه که شما try catch بذارید و جلوی این مشکل رو بگیرید.

اما روش بهینه اش اینه که بذارید توسط خود Task.Run این اتفاق بیوفته چون خود Task خطاهارو به نحوی هندل میکنه که unhandled exception نخورید و باعث میشه اپ شما کرش نکنه اما لاگ کردن این نوع خطاها نیازمند یک کلاس Helper هست که با پیاده سازیش خودتون میتونید توی کارهای پس زمینه ی خودتون لاگ بذارید که اگر خطایی خورد متوجه عملکرد نرم افزار بشید.

پس مراقب باشید که چطوری از Task استفاده می کنید.

#تخصصی
#سی_شارپ
#تسک
#Task
#Thread

کانال تلگرام:
@CsharpTips

BY C# Programming Guide


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/CsharpTips/349

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Telegram today rolling out an update which brings with it several new features.The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations.

To pay the bills, Mr. Durov is issuing investors $1 billion to $1.5 billion of company debt, with the promise of discounted equity if the company eventually goes public, the people briefed on the plans said. He has also announced plans to start selling ads in public Telegram channels as soon as later this year, as well as offering other premium services for businesses and users.

telegram from us


Telegram C# Programming Guide
FROM USA