Bài giảng Lập trình nâng cao: Bài 6 - Lý Anh Tuấn

28 20 0
Bài giảng Lập trình nâng cao: Bài 6 - Lý Anh Tuấn

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Lập trình nâng cao - Ngôn ngữ lập trình nâng cao cung cấp cho người học các kiến thức: Xử lý ngoại lệ, thực thi ngoại lệ người dùng định nghĩa, thực thi luồng (threads). Mời các bạn cùng tham khảo nội dung chi tiết.

Object-Oriented Programming Using C# NGƠN NGỮ LẬP TRÌNH NÂNG CAO Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Mục tiêu Trong mục này, học: Xử lý ngoại lệ Thực thi ngoại lệ người dùng định nghĩa Thực thi luồng (threads) Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Nhắc lại Một vài dẫn xuất lớp System.Exception Ver 1.0 Lớp Exception Miêu tả System.IO.IOException Xử lý lỗi I/O System.IndexOutOfRangeException Xử lý lỗi sinh phương thức liên quan tới thành phần mảng mà vượt phạm vi System.NullReferenceException Xử lý lỗi sinh trình xứ lý đối tượng rỗng (null) System.DivideByZeroException Xử lý lỗi sinh trình xử lý phép chia cho System.InvalidCastException Xử lý lỗi sinh trình ép kiểu System.OutOfMemoryException Xử lý khởi tạo nhớ cho ứng dụng bị lỗi System.ArithmeticException Xử lý lỗi sinh phép toán số học, ép kiểu chuyển kiểu System.InvalidCastException Xử lý lỗi ép kiểu lỗi System.ArgumentNullException Xử lý tham số có giá trị rỗng System.Data.DataException Xử lý lỗi sử dụng thành phần ADO.NET Slide of 21 Object-Oriented Programming Using C# Xử lý ngoại lệ Trong xử lý ngoại lệ, ứng dụng chia thành khối mã Một khối khả phát sinh lỗi nhiều xử lý ngoại lệ Xử lý ngoại lệ sinh cấu trúc điều khiển cách thức chuẩn việc xử lý lỗi mức hệ thống mức ứng dụng Khối xử lý ngoại lệ thực thi sử dụng từ khóa: try catch finally Chúng ta tìm hiểu chi tiết từ khóa Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Xử lý ngoại lệ (tiếp) Khối try: Khối try bao quanh câu lệnh phát sinh ngoại lệ Cú pháp khối try sau: try { //Các câu lệnh phát sinh ngoại lệ } Khối try quản lý câu lệnh bên định nghĩa phạm vi xử lý ngoại lệ liên quan tới Khối try phải có khối catch Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Xử lý ngoại lệ (tiếp) Khối catch: Câu lệnh catch khối catch đưa đối tượng lớp ngoại lệ tham số, đề cập tới ngoại lệ phát sinh Chúng ta xử lý ngoại lệ liên quan tới khối try cách cung cấp nhiều khối xử lý catch, sau khối try: try { //các câu lệnh gây ngoại lệ } catch (…) { //Mã xử lý lỗi } Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Xử lý ngoại lệ (tiếp) Khối finally: Khối finally sử dụng để xử lý tập câu lệnh ngoại lệ đưa không: try { //Câu lệnh gây ngoại lệ } catch (…) { //Mã xử lý lỗi } finally { //Câu lệnh phải xử lý } Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Ví dụ: Xử lý ngoại lệ Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Ví dụ: Xử lý ngoại lệ cho mảng Vấn đề đưa ra: Duy làm việc dự án anh phải tính tốn tổng giá trị mảng số nguyên Duy cần xử lý ngoại lệ xảy anh làm việc với mảng Nếu điều kiện ngoại lệ xảy Duy thực thi chương trình, ứng dụng cần hiển thị thông tin ngoại lệ tương ứng Hãy giúp Duy xử lý ngoại lệ Ver 1.0 Slide of 21 Object-Oriented Programming Using C# Ví dụ: Quản lý sinh viên Vấn đề đưa ra: Hoàng làm việc dự án công ty FPT Software, anh phải viết chương trình tìm kiếm thơng tin nhân viên dựa vào mã nhân viên họ Hồng cần xử lý ngoại lệ khơng tìm thấy nhân viên tương ứng Hãy giúp Hoàng xử lý ngoại lệ Ver 1.0 Slide 10 of 21 Object-Oriented Programming Using C# Thực thi luồng (Thread) Hình sau miêu tả trình xử lý single-threaded Để xử lý nhiều nhiệm vụ thời điểm, tạo nhiều threads chương trình Quá trình tạo hai nhiều threads gọi đa luồng (multithreaded) Ver 1.0 Slide 14 of 21 Object-Oriented Programming Using C# Thực thi luồng (Thread) Hình sau miêu tả trình xử lý multithreaded Ver 1.0 Slide 15 of 21 Object-Oriented Programming Using C# Mơ hình thread C# Trong hệ thống single-threaded, phương pháp gọi vòng lặp kiện với polling sử dụng Polling trình kiện xử lý thời điểm Trong vòng lặp kiện với phương pháp polling, thread đơn chạy vòng lặp vơ hạn hoạt động hoàn thành Trong ứng dụng single-threaded thread tạm dừng (suspend) q trình xử lý, tồn chương trình dừng việc xử lý Trong multithreading, Thời gian mà thread đợi để dành thời gian cho CPU thực thi cho nhiệm vụ khác Ver 1.0 Slide 16 of 21 Object-Oriented Programming Using C# Mơ hình thread C# Trong C#, sử dụng lớp Thread để làm việc với thread Lớp System.Threading.Thread sử dụng để xây dựng truy cập thread riêng ứng dụng multithreaded Ver 1.0 Slide 17 of 21 Object-Oriented Programming Using C# Main Thread Main thread tạo tự động bắt đầu xử lý chương trình C# Thread tạo việc sử dụng lớp Thread gọi thread con, main thread gọi thread cha thread Chúng ta truy cập thread sử dụng thuộc tính CurrentThread lớp Thread Ver 1.0 Slide 18 of 21 Object-Oriented Programming Using C# Làm việc với Thread Trong C#, tạo thread cách tạo đối tượng kiểu Thread, đưa hàm tạo tham chiếu ThreadStart, gọi phương thức Start() thread Thread bắt đầu xử lý không đồng với lời gọi phương thức thread Lớp Thread có nhiều phương thức Chúng ta sử dụng phương thức để điều khiển việc xử lý thread Một số phương thức là: Start(): Bắt đầu thread Sleep(): Tạp dừng thread khoảng thời gian Abort(): Kết thúc thread Suspend(): Đình thread Nếu thread thực bị đình khơng có tác dụng Resume(): Phục hồi thread bị đình Ver 1.0 Slide 19 of 21 Object-Oriented Programming Using C# Tạo Thread Chúng ta tạo thread cách mở rộng lớp Thread Lớp thread mở rộng gọi phương thức Start() để bắt đầu thực thi thread Ví dụ sau để tạo thread: ThreadStart ChildRef = new ThreadStart(ChildThreadCall); Thread ChildThread = new Thread(ChildRef); ChildThread.Start(); Ver 1.0 Slide 20 of 21 Object-Oriented Programming Using C# Ví dụ 1: Tạo Thread using System; using System.Threading; namespace Csharp { class TestCsharp { public static void CallToChildThread(){ Console.WriteLine("Thread bat dau!!!"); } static void Main(string[] args){ ThreadStart childref = new ThreadStart(CallToChildThread); Console.WriteLine("Trong Main Thread: tao thread con."); Thread childThread = new Thread(childref); childThread.Start(); Console.ReadKey(); } } } Ver 1.0 Slide 21 of 21 Object-Oriented Programming Using C# Ví dụ 2: Tạo Thread class Program { static void Main() { Thread t = new Thread(new ThreadStart(MethodA)); t.Start(); MethodB(); } static void MethodA() { for (int i = 0; i < 100; i++) Console.Write("0"); } static void MethodB() { for (int i = 0; i < 100; i++) Console.Write("1"); } } Ver 1.0 Slide 22 of 21 Object-Oriented Programming Using C# Quản lý Thread Có nhiều nhiệm vụ cần phải thực thi để quản lý hoạt động vịng đời thread Chúng ta quản lý tất nhiệm vụ sử dụng đa dạng phương thức sẵn có lớp Thread Phương thức tĩnh Thread.Sleep() gọi phương thức tĩnh CurrentThread, sau tạm dừng thread khoảng thời gian định định Ver 1.0 Slide 23 of 21 Object-Oriented Programming Using C# Ví dụ quản lý Thread using System; using System.Threading; namespace Csharp { class TestCsharp { public static void CallToChildThread(){ Console.WriteLine("Bat dau Thread con!!!"); // Thread dung khoang 5000 milisecond int sleepfor = 5000; Console.WriteLine("Thread dung khoang {0} giay", sleepfor / 1000); Thread.Sleep(sleepfor); Console.WriteLine("Thread phuc hoi!!!"); } Ver 1.0 Slide 24 of 21 Object-Oriented Programming Using C# Ví dụ quản lý Thread static void Main(string[] args) { ThreadStart childref = new ThreadStart(CallToChildThread); Console.WriteLine("Trong Main Thread: tao Thread con."); Thread childThread = new Thread(childref); childThread.Start(); Console.ReadKey(); } } } Ver 1.0 Slide 25 of 21 Object-Oriented Programming Using C# Hủy Thread Nếu thread yêu cầu hủy bỏ, phương thức Thread.Abort() cho phép thực thi nhiệm vụ Bỏ qua thread chạy cách ném ngoại lệ ThreadAbortException Ngoại lệ bắt Nếu khối finally trình bày phương thức, chạy gửi điều khiển tới Ver 1.0 Slide 26 of 21 Object-Oriented Programming Using C# Tổng kết Trong mục này, học: Xử lý ngoại lệ thực thi với từ khóa sau: try catch finally Xử lý ngoại lệ cung cấp cấu trúc cách thức xử lý đồng lỗi mức hệ thống mức ứng dụng Xử lý ngoại lệ trình cung cấp cách thức thay để xử lý ứng dụng xử lý theo cách mong muốn Ngoài để xử lý ngoại lệ người dung định nghĩa, người sử dụng tạo cá ngoại lệ riêng cách dẫn xuất lớp ngoại lệ từ lớp ApplicationException Ver 1.0 Slide 27 of 21 Object-Oriented Programming Using C# Tổng kết (tiếp) Chúng ta ném đối tượng kiểu đối tượng dẫn xuất trực tiếp gián tiếp từ System.Exception Chúng ta sử dụng câu lệnh throw để phát sinh ngoại lệ riêng Một thread định nghĩa phần xử lý chương trình Tuần tự câu lệnh xử lý để định nghĩa luồng điều khiển Một chương trình tạo hai nhiều thread gọi chương trình đa luồng (multithreaded) Lớp System.Threading sử dụng để xây dựng truy cập thread riêng ứng dụng multithreaded Ver 1.0 Slide 28 of 21 ... dụng thực thi tính tốn lớn phức tạp Quá trình xử lý sử dụng thread biết đến trình thread đơn (single-threaded) q trình thể chương trình chạy Ứng dụng single-threaded thực thi ứng dụng thời điểm... of 21 Object-Oriented Programming Using C# Thực thi luồng (Thread) Hình sau miêu tả trình xử lý single-threaded Để xử lý nhiều nhiệm vụ thời điểm, tạo nhiều threads chương trình Quá trình tạo hai... System.DivideByZeroException Xử lý lỗi sinh trình xử lý phép chia cho System.InvalidCastException Xử lý lỗi sinh trình ép kiểu System.OutOfMemoryException Xử lý khởi tạo nhớ cho ứng dụng bị lỗi

Ngày đăng: 26/10/2020, 16:17

Hình ảnh liên quan

Hình sau miêu tả quá trình xử lý multithreaded. - Bài giảng Lập trình nâng cao: Bài 6 - Lý Anh Tuấn

Hình sau.

miêu tả quá trình xử lý multithreaded Xem tại trang 15 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan