לדלג לתוכן

תרגול השלמות והקשרים

כתבו מתודה שמחזירה Task עם מסלול שמסתיים סינכרונית ומסלול שממתין לטיימר. הדפיסו הודעות לפני הקריאה, מיד אחריה ואחרי await. אל תבססו את הבדיקה על כך ששני thread IDs חייבים להיות שונים.

בנו TaskCompletionSource עם RunContinuationsAsynchronously, הפעילו consumer שממתין לו, והשלימו אותו מתוך קטע שמדפיס הודעות סביב SetResult. הסבירו מה האפשרות מבטיחה לגבי הרצת continuation בתוך פעולת ההשלמה, ומה אינה מבטיחה לגבי סדר כל ההדפסות בתהליך.

תקנו את handler ה־WPF מן ההרצאה, לרבות טיפול בכשל. הוסיפו הסבר מדוע async void מתאים לגבול האירוע אך פוגע ביכולת ההמתנה של פונקציית ספרייה.