PDA

View Full Version : گفتگو: پیاده سازی برنامه با task و بدون async



r4hgozar
دوشنبه 11 آبان 1394, 19:16 عصر
سلام.
من دارم کتاب Expert ASP.NET Web API 2 for MVC Developers رو می خونم.
تو فصل 3 اومده و میشه گفت بطور مختصر داره درباره اجرای برنامه بصورت ناهمگام و چطور پیاده سازی اون صحبت می کنه.
سوالم اینجاست اینطوری که این برنامه توضیح داده اجرای ساده این برنامه بصورت اینه که ما از task و async و awit استفاده کنیم.
اما میتونیم بدنه رو خودمون هم درست کنیم مثل کد زیر


public Task<long> GetPageSize(CancellationToken cToken)
{
return Task<long>.Factory.StartNew(() =>{
WebClient wc = new WebClient();
Stopwatch sw = Stopwatch.StartNew();
List<long> results=new List<long>();
for (int i = 0; i < 10; i++)
{
if (!cToken.IsCancellationRequested)
{
Debug.WriteLine("Making requset: {0}",i);
results.Add(wc.DownloadData(TargetUrl).LongLength) ;
}
else
{
Debug.WriteLine("Canceled");
return 0;
}

}
Debug.WriteLine("Elasped ms: {0} ", sw.ElapsedMilliseconds);
return (long) results.Average();

});


}



که بعد دفعات تکرار اگه عمل ناموفق بود کنسل بشه. حالا سوالم اینجاست ک آیا پیاده سازی دستی و بدون async بهتر یا اینکه استفاده از اون.
می خواستم توضیحات مفصل تری درباره این مطلب بخونم.
مخصوصا اگه دوستان توضیحاتی روبدن ممنون میشم.

ahmad156
سه شنبه 12 آبان 1394, 07:58 صبح
دوره آموزشی مربوط به async (http://www.dotnettips.info/courses/details/14)