חם מהתנור: עדכון ל- Async CTP המתאים לויז’ואל סטודיו 2010 עם SP1

13 באפריל 2011

אין תגובות

Visual Studio 2010 Blackבכנס המפתחים השנתי של מיקרוסופט שהתקיים באוקטובר האחרון, חשפה מיקרוסופט את הפוקוס המרכזי לגירסא הבאה של שפת #C – כתיבת קוד אסינכרוני כחלק אינטגרלי מהשפה וללא צורך בכתיבת קוד מורכב.
כדי לתת למפתחים אפשרות להתנסות בחידושים, שוחררה גירסת התנסות למפתחים (CTP) הניתנת להתקנה על Visual Studio 2010.

היום שחררה מיקרוסופט עדכון לחבילת ההתנסות למפתחים אשר מתאימה להתקנה על Visual Studio 2010 עם Service Pack 1.

להורדת הגירסא העדכנית ל- Visual Studio 2010 SP1 >>

מה יש בערכת ההתנסות למפתחים?

בחבילת ההתנסות למפתחים תוכלו למצוא ספרייה שלמה של דוגמאות ללימוד היכולות החדשות של השפה. מומלץ להתחיל בדוגמה ששמה 101 Asyncs שנותנת דוגמאות פשוטות להבנה. לאחר מכן ניתן להמשיך לדוגמאות המורכבות יותר.

עדכון ל- Async CTP

דוגמת קוד להבנה

נסתכל על הקוד הבא:

private void DoSomeAction()
{
 
var url = "..."
;
 
var results = new WebClient
().DownloadString(url);
 
var data = ParseResults(results);
  ListBox.ItemsSource = data.Take(10);
}

זוהי דוגמא קלאסית לקוד שפועל בצורה סינכרונית. הפעולה WebClient.DownloadString ניגשת לרשת להורדה של מידע, והיא חוסמת את ה- Thread הנוכחי מלבצע פעולות נוספות ובכך פוגעת בחווית המשתמש.

נבצע את הפעולות הבאות כדי לקבל את הקוד הבא:

  • נהפוך את המתודה להיות אסינכרונית ע”י הוספת מילת הקוד async בהצהרת המתודה.
  • נשתמש ב- overload שונה של המתודה DownloadString (מתודה חדשה שמגיעה בהתקנת ה- CTP), כדי להפוך את הקריאה לאסינכרונית.
  • נוסיף את המילה await לפני הקריאה האסינכרונית החדשה.

לבסוף נקבל את הקוד הבא:

async private void DoSomeAction()
{
 
var url = "..."
;
 
var results = await new WebClient
().DownloadStringTaskAsync(url);
 
var data = ParseResults(results);
  ListBox.ItemsSource = data.Take(10);
}

נשים לב שהקוד שקיבלנו פשוט להבנה ואינו נראה מסובך יותר מקוד שרץ בצורה סינכרונית!

תהנו!

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *