תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 סילבוס הקורס.

Slides:



Advertisements
Similar presentations
תרגול 8 Skip Lists Hash Tables. Skip Lists Definition: – A skip list is a probabilistic data structure where elements are kept sorted by key. – It allows.
Advertisements

Object Oriented 33 MCSD DORON AMIR
ממיבחניםC שאלות ++.
תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
מבוא למדעי המחשב לתעשייה וניהול
בתרגול הקודם הורשה: –ניתן להרחיב רק מחלקה אחת –כל מה שלא private – עובר בהורשה –המילה השמורה super –יצירת היררכיה –Object היא שורש ההיררכיה –דריסה אופרטור.
קורס Java מתקדם Design Patterns
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
Map-Reduce Input: a collection of scientific articles on different topics, each marked with a field of science –Mathematics, Computer Science, Biology,
מבוא למדעי המחשב תרגול 4 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מרצה: פרופסור דורון פלד
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
אתחולים ובנאים יצירת מופע חדש של עצם כוללת : הקצאת זכרון, אתחול, הפעלת בנאים והשמה לשדות במסגרת ריצת הבנאי נקראים גם הבנאי / ים של מחלקת הבסיס תהליך זה.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
תכנות תרגול 10 שבוע : הקשר בין מערכים למצביעים נרצה לעמוד על הקשר בין מערך למצביע מאחר ומערכים הם הכללה של משתנים הרי שברור שלמערך ולכל אחד מאיבריו.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
R. Bar-Yehuda © 1 קומבינטוריקה למדעי - המחשב – הרצאה #16 EULER GRAPHS גרפים אויילרים מבוסס על הספר : S. Even, "Graph Algorithms",
עקרון ההכלה וההדחה.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
אתחול עצמים. אתחולים ובנאים יצירת מופע חדש של עצם כוללת: הקצאת זכרון, אתחול, הפעלת בנאים והשמה לשדות במסגרת ריצת הבנאי נקראים גם הבנאי/ם של מחלקת הבסיס.
CCN CCN Central Control Network Part A presentation Winter & Spring 2002/03 Student : Kormas Tal Guide : Gerber Alex.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Methods public class Demonstrate { public static void main (String argv[]) { public static void main (String argv[]) { int script = 6, acting = 9, directing.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
[ServiceContract] public interface IJokeOfTheDayService { [OperationContract] string GetJoke(int jokeStrength); }
1 המרכז להוראת המדעים © האוניברסיטה העברית בירושלים פולימורפיזם מתקדם ממשקים בג ' אווה 1.
שיאון שחוריMilOSS-il מוטיבציה  python זה קל ו C זה מהיר. למה לא לשלב?  יש כבר קוד קיים ב C. אנחנו רוצים להשתמש בו, ולבסס מעליו קוד חדש ב python.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
1 נתבונן בפונקציה הבאה public static int min(int[] a,int n) { int min = a[0]; for (int i = 1; (i < n ) && (i < a.length) ; i++) if (min > a[i]) min = a[i];
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
פיתוח אפליקציות אסינכרוניות Windows 10 Layout controls 2 ארז קלר.
קצת היסטוריה 1981דיווח ראשון על תסמונת כשל חיסוני נרכש בקרב מספר הומוסקסואלים. 1981דיווח על ביטויים שונים של איידס בקרב מזריקי סמים, חולי המופיליה, מקבלי.
האוניברסיטה העברית בירושלים
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Operators Overloading
Formal Specifications for Complex Systems (236368) Tutorial #1
SQL בסיסי – הגדרה אינדוקטיבית
Static and enum קרן כליף.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל-Windows 8
תכנות מכוון עצמים ושפת JAVA
תכנות מכוון עצמים בשפת JAVA
ממשקים - interfaces איך לאפשר "הורשה מרובה".
Asynchronous programming
מבוא לתכנות בWINDOWS ב#C
תכנות מכוון עצמים ושפת JAVA
תכנות אסינכרוני מבוא.
Shell Scripts בסביבת UNIX
תוכנה 1 תרגול 13 – סיכום.
תוכנה 1 תרגול 13 – סיכום.
פיתוח אפליקציות אסינכרוניות Windows 10
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
פולימורפיזם מתקדם ממשקים בC# עריכה ועיצוב: קרן הרדי
Presentation transcript:

תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 סילבוס הקורס

Threads in WPF

 הפיתרון – להעביר את הפעולה המתמשכת לתהליך נפרד.  הבעיה – לא טריוויאלי באפליקציות חלונאיות (WinForms או WPF).  WPF (או WinForms) מחייב אותנו לבצע את כל עבודת ה- UI רק בתהליך שיצר את ה- UI.  ניסיון לכתוב את הקוד הבא:  יגרום לחריגה הבאה: private void btnDoSomething_Click(object sender, RoutedEventArgs e) { Thread thread = new Thread(Paint); thread.Start(); } “The calling thread must be STA” דוגמת קוד: WpfThread02

Threads in WPF  הסיבה לחריגה היא STA – Single Thread Apartment.  STA – לא מגבלה של הטכנולוגיה בה אנו משתמשים (WPF או WinForms), אלא תכתיב של מערכת ההפעלה.  STA זה מגבלה, איך מתמודדים איתה?  באמצעות רכיב הנקרא BackgroundWorker. WPF (או WinForms) מחייב אותנו לבצע את כל עבודת ה- UI רק בתהליך שיצר את ה- UI

Threads in WPF - BackgroundWorker BackgroundWorker  מחלקה שימושית המוגדרת במרחב השמות System.ComponentModel.  המחלקה מאפשרת העברת מטלות כבדות וארוכות ב-WPF לתהליך נפרד.  יכולה לדווח על התקדמות התהליך, על סיום או על ביטול.  מכילה יכולת מובנית לטיפול בחריגים.  יכולת לעדכן רכיבי UI. קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker כיצד משתמשים ב- BackgroundWorker: 1. הוספת אובייקט מהמחלקה בתכונה של מחלקת החלון (או ב-XAML אם רוצים): 2. הגדרת התכונות הבאות בבנאי של החלון: מאפשרים ביטול ומאפשרים קבלת דו"ח התקדמות: public partial class MainWindow : Window { BackgroundWorker background_worker = new BackgroundWorker(); …. } public MainWindow() { InitializeComponent(); background_worker.WorkerSupportsCancellation = true; background_worker.WorkerReportsProgress = true; } קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker 3. הגדרת האירועים הבאים:  הגדרת האירוע DoWork אשר מועלה כאשר מופעלת המתודה RunWorkserAsync, הטיפול באירוע מממש את הפעולה האסינכרונית שרוצים לבצע ברקע.  האירוע ReportProgress יופעל בכל פעם שנרצה לעדכן את הממשק הן בהתקדמות התהליך והן על מנת לעדכן תוצאות ביניים.  האירוע השלישי, RunWorkerCompleted מועלה כאשר התהליך מסתיים או מבוטל. public MainWindow() { InitializeComponent(); background_worker.WorkerSupportsCancellation = true; background_worker.WorkerReportsProgress = true; background_worker.DoWork += background_worker_DoWork; background_worker.ProgressChanged += background_worker_ProgressChanged; background_worker.RunWorkerCompleted += background_worker_RunWorkerCompleted; } קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker הרצת התהליך: private void btnDoSomething_Click(object sender, RoutedEventArgs e) { background_worker.RunWorkerAsync(1000); } הפרמטר הנשלח לתהליך קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker מימוש האירוע DoWork, מימוש התהליך אשר ירוץ ברקע. ניתן להעביר פרמטר, הפרמטר הוא מטיפוס Object. יש לבדוק במהלך הביצוע האם התהליך בוטל על מנת לעצור את ריצת התהליך. void background_worker_DoWork(object sender, DoWorkEventArgs e) { for (int i = 0; i < (int)e.Argument; i++) { if (background_worker.CancellationPending) { e.Cancel = true; break; } Parameters parameter = Paint(); background_worker.ReportProgress(i / 100, parameter); Thread.Sleep(10); } בדיקה האם התהליך בוטל הפרמטר הנשלח לאירוע העלאת האירוע Progress Changed הפרמטר הראשון – אחוז התקדמות, הפרמטר השני – מידע נוסף.

Threads in WPF - BackgroundWorker הטיפול באירוע ProgressChanged – עדכון ממשק המשתמש: void background_worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { Parameters parameter = e.UserState as Parameters; Ellipse ellipse = new Ellipse(); ellipse.Width = parameter.Size.Width; ellipse.Height = parameter.Size.Height; ellipse.Fill = new SolidColorBrush(parameter.Color); Canvas.SetTop(ellipse, parameter.Location.Y); Canvas.SetLeft(ellipse, parameter.Location.X); canvas.Children.Add(ellipse); txtInterationCounter.Text = e.ProgressPercentage.ToString() + " %"; } הפרמטר שנשלח התקדמות העיבוד. קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker סיום התהליך: void background_worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled) { MessageBox.Show("BackgroundWorker canceled"); } else { MessageBox.Show("BackgroundWorker ended successfully"); } ביטול סיום העיבוד. קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker קוד דוגמה: BackgroundWorkerSample

Threads in WPF - BackgroundWorker  ניתן להגדיר מספר רכיבי BackgroundWorker בחלון.  כל BackgroundWorker יכול להפעיל מספר תהליכים.  דוגמת קוד: BackgroundWorkerSample02.

תרגול תרגיל 4 מדף התרגילים

את הסילבוס, חומרים, מצגות ניתן להוריד ב: