Bài giảng Lập trình Windows Phone (Module 3): Bài 6 - Trần Duy Thanh
Số trang: 17
Loại file: pptx
Dung lượng: 200.51 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Trong bài 6 người học sẽ tìm hiểu về lập trình đồng bộ và bất đồng bộ trong Windows Phone. Các nội dung chính được trình bày trong bài giảng này gồm có: Khái niệm đồng bộ và bất đồng bộ, Async method, BackgroundWorker, Task. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Windows Phone (Module 3): Bài 6 - Trần Duy Thanh TrườngĐHKhoaHọcTựNhiênTP.HCM TRUNGTÂMTINHỌCLậptrìnhWindowsPhoneModule3–Bài6:Lậptrìnhđồngbộvàbấtđồngbộ GVBiênsoạn:TrầnDuyThanh 2014Nội dung• Khái niệm đồng bộ và bất đồng bộ• Async method• BackgroundWorker• Task SynchronousvàAsynchronousProgramming 2Khái niệm đồng bộ và bấtđồng bộSynchronous (đồng bộ)Asynchronous (bất đồng bộ) SynchronousvàAsynchronousProgramming 3Khái niệm đồng bộ và bấtđồng bộ SynchronousvàAsynchronousProgramming 4Async method SynchronousvàAsynchronousProgramming 5Async methodprivate async void startButton_Click(object sender,RoutedEventArgs e) { // ONE Task getLengthTask = AccessTheWebAsync(); // FOUR int contentLength = await getLengthTask; // SIX resultsTextBox.Text += String.Format( Length of the downloadedstring: {0}. , contentLength); } SynchronousvàAsynchronousProgramming 6Async methodasync Task AccessTheWebAsync() { // TWO HttpClient client = new HttpClient(); Task getStringTask =client.GetStringAsync(http://msdn.microsoft.com); // THREE string urlContents = await getStringTask; // FIVE return urlContents.Length; SynchronousvàAsynchronousProgramming 7BackgroundWorkerBackgroundWorker là một lớp cho phép ta viếtđa tiến trình để cập nhật giao diện ở thời gianthực, nằm trong thư việnSystem.ComponentModelBackgroundWorkerbw=newBackgroundWorker();//hỗtrợchophéphủybw.WorkerSupportsCancellation=true;//hỗtrợchophépcậpnhậtbw.WorkerReportsProgress=true;//sựkiệnđểkíchhoạtbătđầuchạyBackgroundWorkerbw.DoWork+=bw_DoWork;//Sựkiệnđểcậpnhậtbw.ProgressChanged+=bw_ProgressChanged;//sựkiệnđánhdấulàđãxong 8 SynchronousvàAsynchronousProgrammingbw.RunWorkerCompleted+=bw_RunWorkerCompleted;BackgroundWorkerbw.RunWorkerAsync();private void bw_DoWork(object sender, DoWorkEventArgs e) { bw.ReportProgress(i * 10); }private void bw_ProgressChanged(object sender,ProgressChangedEventArgs e) {…}private void bw_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e) {… } SynchronousvàAsynchronousProgramming 9Task• Runchạy bằng hàm Run• Start chạy bằng hàm Start• StartNew chạy bằng hàm StartNew• ContinueWithChạy Chuỗi tác vụ• Resultlấy kết qủa trả về• Wait & WaitAllchờ 1 tác vụ, nhiều tác vụ SynchronousvàAsynchronousProgramming 10RunpublicintFib(intn){if(nFib(10));MessageBox.Show(Fib=+task.Result); SynchronousvàAsynchronousProgramming 11Startint[]nums={2,19,17,21,4,13,8,12,7,3,5};varf0=newTask(()=>nums.Average());f0.Start(); SynchronousvàAsynchronousProgramming 12StartNewintn=5;vartask=Task.Factory.StartNew(()=>Fib(n)); SynchronousvàAsynchronousProgramming 13ContinueWithvart1=newTask(DoOnFirst);vart2=t1.ContinueWith(DoOnSecond);t1.Start(); SynchronousvàAsynchronousProgramming 14Wait & WaitAllvartask=Task.Factory.StartNew(()=>{intn=5;ints=0;for(inti=1;iWait & WaitAllpublicintFunc1(intx){returnx*2;}publicvoidFunc2(){….}vartask1=Task.Factory.StartNew(()=>Func1(6));vartask2=Task.Factory.StartNew(()=>Func2());Task.WaitAll(task1,task2);MessageBox.Show(xcủatask1=+task1.Result); SynchronousvàAsynchronousProgramming 16Thảo luận SynchronousvàAsynchronousProgramming 17
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Windows Phone (Module 3): Bài 6 - Trần Duy Thanh TrườngĐHKhoaHọcTựNhiênTP.HCM TRUNGTÂMTINHỌCLậptrìnhWindowsPhoneModule3–Bài6:Lậptrìnhđồngbộvàbấtđồngbộ GVBiênsoạn:TrầnDuyThanh 2014Nội dung• Khái niệm đồng bộ và bất đồng bộ• Async method• BackgroundWorker• Task SynchronousvàAsynchronousProgramming 2Khái niệm đồng bộ và bấtđồng bộSynchronous (đồng bộ)Asynchronous (bất đồng bộ) SynchronousvàAsynchronousProgramming 3Khái niệm đồng bộ và bấtđồng bộ SynchronousvàAsynchronousProgramming 4Async method SynchronousvàAsynchronousProgramming 5Async methodprivate async void startButton_Click(object sender,RoutedEventArgs e) { // ONE Task getLengthTask = AccessTheWebAsync(); // FOUR int contentLength = await getLengthTask; // SIX resultsTextBox.Text += String.Format( Length of the downloadedstring: {0}. , contentLength); } SynchronousvàAsynchronousProgramming 6Async methodasync Task AccessTheWebAsync() { // TWO HttpClient client = new HttpClient(); Task getStringTask =client.GetStringAsync(http://msdn.microsoft.com); // THREE string urlContents = await getStringTask; // FIVE return urlContents.Length; SynchronousvàAsynchronousProgramming 7BackgroundWorkerBackgroundWorker là một lớp cho phép ta viếtđa tiến trình để cập nhật giao diện ở thời gianthực, nằm trong thư việnSystem.ComponentModelBackgroundWorkerbw=newBackgroundWorker();//hỗtrợchophéphủybw.WorkerSupportsCancellation=true;//hỗtrợchophépcậpnhậtbw.WorkerReportsProgress=true;//sựkiệnđểkíchhoạtbătđầuchạyBackgroundWorkerbw.DoWork+=bw_DoWork;//Sựkiệnđểcậpnhậtbw.ProgressChanged+=bw_ProgressChanged;//sựkiệnđánhdấulàđãxong 8 SynchronousvàAsynchronousProgrammingbw.RunWorkerCompleted+=bw_RunWorkerCompleted;BackgroundWorkerbw.RunWorkerAsync();private void bw_DoWork(object sender, DoWorkEventArgs e) { bw.ReportProgress(i * 10); }private void bw_ProgressChanged(object sender,ProgressChangedEventArgs e) {…}private void bw_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e) {… } SynchronousvàAsynchronousProgramming 9Task• Runchạy bằng hàm Run• Start chạy bằng hàm Start• StartNew chạy bằng hàm StartNew• ContinueWithChạy Chuỗi tác vụ• Resultlấy kết qủa trả về• Wait & WaitAllchờ 1 tác vụ, nhiều tác vụ SynchronousvàAsynchronousProgramming 10RunpublicintFib(intn){if(nFib(10));MessageBox.Show(Fib=+task.Result); SynchronousvàAsynchronousProgramming 11Startint[]nums={2,19,17,21,4,13,8,12,7,3,5};varf0=newTask(()=>nums.Average());f0.Start(); SynchronousvàAsynchronousProgramming 12StartNewintn=5;vartask=Task.Factory.StartNew(()=>Fib(n)); SynchronousvàAsynchronousProgramming 13ContinueWithvart1=newTask(DoOnFirst);vart2=t1.ContinueWith(DoOnSecond);t1.Start(); SynchronousvàAsynchronousProgramming 14Wait & WaitAllvartask=Task.Factory.StartNew(()=>{intn=5;ints=0;for(inti=1;iWait & WaitAllpublicintFunc1(intx){returnx*2;}publicvoidFunc2(){….}vartask1=Task.Factory.StartNew(()=>Func1(6));vartask2=Task.Factory.StartNew(()=>Func2());Task.WaitAll(task1,task2);MessageBox.Show(xcủatask1=+task1.Result); SynchronousvàAsynchronousProgramming 16Thảo luận SynchronousvàAsynchronousProgramming 17
Tìm kiếm theo từ khóa liên quan:
Windows Phone Bài giảng Lập trình Windows Phone Lập trình Windows Phone Lập trình Windows Phone module 3 Lập trình đồng bộ Lập trình bất đồng bộGợi ý tài liệu liên quan:
-
Giáo trình Lập trình Window Phone (Module 3) - Trung tâm tin học ĐH KHTN
104 trang 23 0 0 -
Beginning Windows 8 Application Devwlopment
313 trang 18 0 0 -
Beginning Windows Phone 7 Development
481 trang 18 0 0 -
Lý do ứng dụng chạy tốt trên Windows Phone 7
3 trang 17 0 0 -
Bài giảng Lập trình Windows Phone (Module 3): Bài 7 - Trần Duy Thanh
22 trang 16 0 0 -
Giới thiệu sơ lược về Windows Phone
16 trang 16 0 0 -
Bài giảng Lập trình Windows Phone (Module 3): Bài 2 - Trần Duy Thanh
39 trang 15 0 0 -
5 cách để tăng tốc Win 8 hiệu quả
10 trang 15 0 0 -
Nghe nhạc trên Windows Phone: những điều bạn cần biết
18 trang 14 0 0 -
SharePoint 2010 Development with Silverlight
610 trang 13 0 0