Tải bản đầy đủ (.pptx) (11 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (135.49 KB, 11 trang )

L o g o
LẬP TRÌNH BẤT ĐỒNG BỘ SỬ DỤNG
BACKGROUNDWORKER
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
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
L o g o
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 “
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o

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
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o

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
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o

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
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

L o g o

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
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o

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
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o

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
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
L o g o
Click to edit company slogan .
Cảm ơn các bạn đã theo dõi !
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

×