1. Trang chủ
  2. » Luận Văn - Báo Cáo

LẬP TRÌNH BẤT ĐỒNG BỘ SỬ DỤNG BACKGROUNDWORKER

11 367 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 173,63 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

NỘI DUNGKhái niệm Lập trình bất đồng bộ 1 BackgroundWorker component 2 Thực thi tiến trình hậu cảnh 3... Khái niệm Lập trình bất đồng bộ Sử dụng lập trình bất đồng bộ có thể thực thi cá

Trang 1

LẬP TRÌNH BẤT ĐỒNG BỘ SỬ DỤNG

BACKGROUNDWORKER

Trang 2

NỘI DUNG

Khái niệm Lập trình bất đồng bộ

1

BackgroundWorker component

2

Thực thi tiến trình hậu cảnh

3

Trang 3

Khái niệm Lập trình bất đồng bộ

Sử dụng lập trình bất đồng bộ có thể thực thi các tác này một cách đồng bộ giúp

cho giao diện vẫn đáp ứng người dùng trong khi thao tác vẫn thực thi

Điều gì sẽ xảy ra khi một ứng dụng thực thi các tác vụ tiêu tốn thời gian(ví dụ:

download file, thực hiện các phép toán phức tạp,…) Nó có thể làm cho giao diện bị “ Not Responding “

Trang 4

 BackgroundWorker component được thiết kế cho phép thực thi các tiến trình hậu cảnh riêng biệt,

có các đặc điểm sau:

 Cho phép thực thi tác vụ bất đồng bộ trong khi giao diện người dùng vẫn đáp ứng

 Xử lý sau khi tiến trình kết thúc thực hiện

 Cho phép ngưng việc thực hiện của tiến trình

 Biết được tiến độ của tiến trình

 Biết được trạng thái của tiến trình đang thực hiện

BackgroundWorker component

Trang 5

 Phương thức quan trọng nhất của BackgroundWorker component là phương thức

RunWorkerAsync Khi phương thức này được gọi, BackgroundWorker phát sinh sự kiện DoWork

BackgroundWorker component

Trang 6

 Từ Toolbox, kéo BackgroundWorker component thả lên form.

 Trong thanh component tray, nhấp đôi vào BackgroundWorker component để tạo bộ xử lý sự kiện

DoWork và cung cấp mã xử lý tiêu tốn thời gian

 Để khởi động thao tác tiêu tốn thời gian, gọi phương thức RunWorkerAsync()

 Lập trình cho sự kiện DoWork:

Private void backgroundworker1_DoWork() {

//Các lệnh thực hiện }

Thực thi tiến trình hậu cảnh

Trang 7

 Gọi thực hiện tiến trình:

BackgroundWorker1.RunWorkerAsync();

 Cung cấp thông tin cho tiến trình hậu cảnh:

 Thêm tham số vào RunWorkerAsync()

 Truy xuất tham số từ thuộc tính DoWorkEventArgs.Argument

 Thông báo kết thúc tiến trình hậu cảnh:

Khi tiến trình hậu cảnh kết thúc, để thông báo tiến trình kết thúc hay bị hủy, sự kiện

RunWorkerCompleted được phát sinh

Thực thi tiến trình hậu cảnh

Trang 8

 Trả về kết quả từ tiến trình hậu cảnh:

Lập trình viên có thể trả về các giá trị bằng cách thiết lập thuộc tính Result của

DoWorkerEventArgs Giá trị này sẽ được truy xuất trong thuộc tính Result của

RunWorkerCompletedEventAgrs

 Hủy một tiến trình hậu cảnh:

 Thiết lập thuộc tính WorkerSupportsCancellation thành True

 Tạo một phương thức sẽ được gọi để hủy các thao tác hậu cảnh Gọi phương thức

CancelAsync()

Thực thi tiến trình hậu cảnh

Trang 9

 Trong sự kiện DoWork, truy vấn thuộc tính CancellationPending và sử dụng hủy tiến trình nếu giá trị này là True Chú ý cũng nên thiết lập DoWorkEventArgs.Cancel thành True

 Thông báo tiến độ của tiến trình hậu cảnh:

 Thiết lập thuộc tính WorkerReportsProgress thành True

 Thông báo tiến độ của tiến trình hậu cảnh bằng cách gọi phương thức ReportProgress Phương thức này phát sinh sự kiện ProgressChanged

Thực thi tiến trình hậu cảnh

Trang 10

 Truy xuất trạng thái tiến trình hậu cảnh:

 Thuộc tính IsBusy trả về giá trị luận lý:

 Nếu là True, thì BackgroundWorker component đang thực thi tiến trình hậu cảnh

 Nếu là False, thì BackgroundWorker component đang rảnh

Thực thi tiến trình hậu cảnh

Trang 11

Click to edit company slogan

Cảm ơn các bạn đã theo dõi !

Ngày đăng: 05/04/2015, 23:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w