• استفاده از  Await در Try/Catch در Csharp 6
استفاده از 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 این قابلیت هم افزوده شده و میتوان از آن به آسانی استفاده نمود. در این مقاله به بررسی چگونگی انجام این عمل خواهیم پرداخت.

  1. using System;  
  1. using System.Net.Http;  
  1. using System.Threading.Tasks;  
  1. using static System.Console;  
  1.    
  1.    
  1. namespace CSharpStar  
  1. {  
  1.     class Program  
  1.     {  
  1.         static void Main(string[] args)  
  1.         {  
  1.             Task.Factory.StartNew(() => GetSite());  
  1.             ReadLine();  
  1.         }  
  1.    
  1.         private async static Task GetSite()  
  1.         {  
  1.             HttpClient client = new HttpClient();  
  1.             try  
  1.             {  
  1.                var result = await client.GetStringAsync  
  1.                             ("http://www.CsharpStar.com");  
  1.                WriteLine(result);  
  1.             }  
  1.             catch (Exception exception)  
  1.             {  
  1.                 try  
  1.                 {  

  1.                  var result = await client.GetStringAsync  
  1.                               ("http://www.easywcf.com");  
  1.                     WriteLine(result);  
  1.                 }  
  1.                 catch  
  1.                 {  
  1.                     WriteLine("Entered Catch Block");  
  1.                 }  
  1.                 finally  
  1.                 {  
  1.                     WriteLine("Entered Finally Block");  
  1.                 }  
  1.             }  
  1.         }  
  1.     }  
  1. }  

همانطور که در مثال مشاهده میکنید، هم در Try و هم در Catch به سادگی از Await استفاده شده و در صورت Fail شدن دستورات قسمت Try، یک Task جدید به صورت بر Async اجرا خواهد شد.

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
برچسب ها
Await Try Catch 
نظرات کاربران
ارسال نظر