استفاده از Await در Try/Catch در Csharp 6
1395/10/03 - 18:20:41 // DataBase and Design Pattern // 0 نظر // 6771 بازدید
در ورژنهای قبلی زبان C# امکان استفاده از Await در بلاکهای Try/Catch/Finally وجود نداشت که از محدودیتهای کامپایلر به حساب می آمد. در C# 6 این قابلیت هم افزوده شده و میتوان از آن به آسانی استفاده نمود. در این مقاله به بررسی چگونگی انجام این عمل خواهیم پرداخت.
بسمه تعالی
در ورژنهای قبلی زبان C# امکان استفاده از Await در بلاکهای Try/Catch/Finally وجود نداشت که از محدودیتهای کامپایلر به حساب می آمد. در C# 6 این قابلیت هم افزوده شده و میتوان از آن به آسانی استفاده نمود. در این مقاله به بررسی چگونگی انجام این عمل خواهیم پرداخت.
- using System;
- using System.Net.Http;
- using System.Threading.Tasks;
- using static System.Console;
-
-
- namespace CSharpStar
- {
- class Program
- {
- static void Main(string[] args)
- {
- Task.Factory.StartNew(() => GetSite());
- ReadLine();
- }
-
- private async static Task GetSite()
- {
- HttpClient client = new HttpClient();
- try
- {
- var result = await client.GetStringAsync
- ("http://www.CsharpStar.com");
- WriteLine(result);
- }
- catch (Exception exception)
- {
- try
- {
- var result = await client.GetStringAsync
- ("http://www.easywcf.com");
- WriteLine(result);
- }
- catch
- {
- WriteLine("Entered Catch Block");
- }
- finally
- {
- WriteLine("Entered Finally Block");
- }
- }
- }
- }
- }
همانطور که در مثال مشاهده میکنید، هم در Try و هم در Catch به سادگی از Await استفاده شده و در صورت Fail شدن دستورات قسمت Try، یک Task جدید به صورت بر Async اجرا خواهد شد.
معرفی نویسنده : علی کلاهدوزان
سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .