TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP.HCMKHOA HỆ THỐNG THÔNG TIN LẬP TRÌNH CƠ SỞ DỮ LIỆU THREAD TRONG C# GVHD : ThS Nguyễn Thị Kim Phụng SVTH: Nguyễn Trung Tín 09520684 Hồ Minh Quân 0952
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP.HCM
KHOA HỆ THỐNG THÔNG TIN
LẬP TRÌNH CƠ SỞ DỮ LIỆU
THREAD TRONG C#
GVHD :
ThS Nguyễn Thị Kim Phụng
SVTH:
Nguyễn Trung Tín 09520684
Hồ Minh Quân 09520000
Trang 2THREAD TRONG C#
G I Giới Thiệu
II Foreground và Background
III.Truyền dữ liệu giữa các Thread
IV BackgroundWorker
V Demo
Trang 3THREAD TRONG C#
I Giới Thiệu
Trong một chương trình C# được bắt đầu trong 1 thread đơn
Thread là một trạng thái tức thời của chương trình.
Cho phép chương trình thực hiện đồng thời nhiều tác vụ cùng lúc
Trang 4THREAD TRONG C#
II Foreground-Background
Mặc định, Thread tạo ra sẽ là Foreground
Tất cả Foreground hoàn thành Thoát ứng dụng
Xét về độ ưu tiên, Background và Foreground
ngang hàng
Dùng thuộc tính IsBackground
để xác định Background hay Foreground
Trang 5THREAD TRONG C#
II Foreground-Background
static void Main( string [] args) {
Thread t1 = new Thread(() =>
{
Thread.Sleep(1000);
Console.WriteLine(" Thread t1 started ");
});
// t1.IsBackground = true;
t1.Start();
Console.WriteLine(" Main thread ending ");
}
Trang 6THREAD TRONG C#
III Truyền dữ liệu giữa các Thread
Thực thi 1 một lambda expression
để gọi phương thức với đối số mong muốn.
static void Main() {
Thread t = new Thread ( () => Print (" Hello from t !") ); t.Start();
}
static void Print (string message) {
Console.WriteLine (message);
}
Trang 7THREAD TRONG C#
IV BackgroundWorker
Là Component trong NET 2.0
Namespace : System.ComponentModel
Quản lí Thread thông quan GUI
Trang 8THREAD TRONG C#
IV BackgroundWorker
1 Properties
IsBusy Xác định Thread có làm việc hay không
WorkerReportsProgress Set hoặc Get giá trị để xác định có report
progress hay không WorkerSupportsCancelation Set hoặc get giá trị xác định có hỗ trợ
Cancel hay không CancelationPending Get giá trị xác định có Cancel hay không
Properties
Trang 9THREAD TRONG C#
IV BackgroundWorker
2 Methods
CancelAsync Yêu cầu Cancel
OnDoWork Gọi sự kiện DoWork
OnProgressChanged Gọi sự kiện ProgressChanged
OnRunWorkerCommpleted Gọi sự kiện RunWorkerCompleted
PeportProgress Gọi sự kiện ProgressChanged
RunWorkerAsync Bắt đầu thực thi Background operator
Methods
Trang 10THREAD TRONG C#
IV BackgroundWorker
3 Events
DoWork Xảy ra khi RunWorkerAsync được gọi
ProgressChanged Xảy ra khi ReportProgress được gọi
RunWorkerCompleted Xảy ra khi công việc hoàn thành, cancel, exception
Events
Trang 11THREAD TRONG C#
IV BackgroundWorker
4 Quá trình thực hiện
Gọi RunworkerAsync()
Thực thi phương thức OnDoWork() IsBusy=True
OnWorkerCompleted()
Trang 12THREAD TRONG C#
V Demo
Trang 13Cảm ơn mọi người đã lắng nghe!