intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình Windows Phone (Module 3): Bài 6 - Trần Duy Thanh

Chia sẻ: Kiếp Này Bình Yên | Ngày: | Loại File: PPTX | Số trang:17

62
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình Windows Phone (Module 3): Bài 6 - Trần Duy Thanh

  1. Trường ĐH Khoa Học Tự Nhiên TP.HCM TRUNG TÂM TIN HỌC Lập trình Windows Phone Module 3 – Bài 6: Lập trình đồng  bộ và bất đồng bộ GV Biên soạn: Trần Duy Thanh 2014
  2. Nội dung • Khái niệm đồng bộ và bất đồng bộ • Async method • BackgroundWorker • Task Synchronous và Asynchronous Programming 2
  3. Khái niệm đồng bộ và bất đồng bộ Synchronous (đồng bộ) Asynchronous (bất đồng bộ) Synchronous và Asynchronous Programming 3
  4. Khái niệm đồng bộ và bất đồng bộ Synchronous và Asynchronous Programming 4
  5. Async method Synchronous và Asynchronous Programming 5
  6. Async method private async void startButton_Click(object sender, RoutedEventArgs e) { // ONE Task getLengthTask = AccessTheWebAsync(); // FOUR int contentLength = await getLengthTask; // SIX resultsTextBox.Text += String.Format("\r\nLength of the downloaded string: {0}.\r\n", contentLength); } Synchronous và Asynchronous Programming 6
  7. Async method async Task AccessTheWebAsync() { // TWO HttpClient client = new HttpClient(); Task getStringTask = client.GetStringAsync("http://msdn.microsoft.com"); // THREE string urlContents = await getStringTask; // FIVE return urlContents.Length; Synchronous và Asynchronous Programming 7
  8. BackgroundWorker BackgroundWorker 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 gian thực, nằm trong thư viện System.ComponentModel BackgroundWorker bw = new BackgroundWorker(); //hỗ trợ cho phép hủy bw.WorkerSupportsCancellation = true; //hỗ trợ cho phép cập nhật bw.WorkerReportsProgress = true; //sự kiện để kích hoạt băt đầu chạy BackgroundWorker bw.DoWork += bw_DoWork; //Sự kiện để cập nhật bw.ProgressChanged += bw_ProgressChanged; //sự kiện đánh dấu là đã xong 8 Synchronous và Asynchronous Programming bw.RunWorkerCompleted += bw_RunWorkerCompleted;
  9. BackgroundWorker bw.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) { … } Synchronous và Asynchronous Programming 9
  10. Task • Runchạy bằng hàm Run • Start  chạy bằng hàm Start • StartNew  chạy bằng hàm StartNew • ContinueWithChạy Chuỗi tác vụ • Resultlấy kết qủa trả về • Wait & WaitAllchờ 1 tác vụ, nhiều tác vụ Synchronous và Asynchronous Programming 10
  11. Run public int Fib(int n){             if (n Fib(10)); MessageBox.Show("Fib="+task.Result); Synchronous và Asynchronous Programming 11
  12. Start int[] nums = { 2,19, 17, 21, 4, 13, 8, 12, 7, 3, 5 }; var f0 = new Task(() => nums.Average()); f0.Start(); Synchronous và Asynchronous Programming 12
  13. StartNew int n = 5; var task = Task.Factory.StartNew(() => Fib (n)); Synchronous và Asynchronous Programming 13
  14. ContinueWith var t1 = new Task(DoOnFirst); var t2 = t1.ContinueWith(DoOnSecond); t1.Start(); Synchronous và Asynchronous Programming 14
  15. Wait & WaitAll var task = Task.Factory.StartNew(() =>             {                 int n = 5;                 int s = 0;                 for (int i = 1; i 
  16. Wait & WaitAll public int Func1(int x) {return x * 2;} public void Func2() {…. } var task1 =  Task.Factory.StartNew(() => Func1(6)); var task2 = Task.Factory.StartNew(() => Func2());            Task.WaitAll(task1, task2); MessageBox.Show("x của task1="+task1.Result); Synchronous và Asynchronous Programming 16
  17. Thảo luận Synchronous và Asynchronous Programming 17
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
9=>0