Share Lập Trình Giao Diện Người Dùng Đa Nhiệm Trong VB.NET: BackgroundWorker và Async Programming

dangyyyy

New member
** #MultitAsking #UserInterface #vb.net #backgroundworker #Async **

## Lập trình giao diện người dùng đa nhiệm trong VB.NET: Lập trình BackidentWorker và Async

Trong bài viết này, chúng tôi sẽ tìm hiểu cách lập trình giao diện người dùng đa nhiệm trong VB.NET bằng cách sử dụng điều khiển BackidentWorker và mô hình lập trình Async.

### Điều khiển BackgroundWorker

Điều khiển BackgroundWorker là điều khiển Windows Forms cho phép bạn thực hiện các tác vụ chạy dài trong nền trong khi giao diện người dùng của bạn vẫn phản hồi.Để sử dụng điều khiển BackgroundWorker, trước tiên bạn cần thêm nó vào biểu mẫu của mình.Bạn có thể thực hiện điều này bằng cách nhấp chuột phải vào biểu mẫu của bạn trong nhà thiết kế và chọn ** Thêm -> Điều khiển Windows Forms -> BackidentWorker **.

Khi bạn đã thêm điều khiển BackgroundWorker vào biểu mẫu của mình, bạn cần đặt thuộc tính ** WorkerReportSproTHER ** thành ** true **.Điều này sẽ cho phép điều khiển BackgroundWorker gửi thông báo tiến trình đến giao diện người dùng của bạn.Sau đó, bạn có thể sử dụng các thông báo tiến trình này để cập nhật giao diện người dùng với trạng thái của tác vụ chạy dài.

Để bắt đầu một nhiệm vụ chạy dài, bạn gọi phương thức ** RunWorkerAsync ** của điều khiển Backgroundworker.Phương pháp này sẽ bắt đầu tác vụ trong một luồng nền và trả về ngay lập tức.Nhiệm vụ sẽ tiếp tục chạy ở chế độ nền cho đến khi nó được hoàn thành hoặc cho đến khi bạn gọi phương thức ** hủySyNc ** của điều khiển Backgroundworker.

Khi nhiệm vụ kết thúc, điều khiển BackidentWorker sẽ gọi ** Dowork ** Trình xử lý sự kiện.Bạn có thể sử dụng trình xử lý sự kiện này để thực hiện nhiệm vụ chạy dài.Trình xử lý sự kiện ** Dowork ** được gọi trong một luồng nền, vì vậy bạn không được truy cập giao diện người dùng từ trình xử lý sự kiện này.

Để cập nhật giao diện người dùng với trạng thái của tác vụ chạy dài, bạn có thể sử dụng phương thức ** Báo cáo ** của điều khiển BackgroundWorker.Phương pháp này lấy một tỷ lệ phần trăm tiến trình làm tham số.Điều khiển BackgroundWorker sau đó sẽ gọi trình xử lý sự kiện ** ProgressChanged **.Bạn có thể sử dụng trình xử lý sự kiện này để cập nhật giao diện người dùng với tiến trình của nhiệm vụ chạy dài.

### Lập trình Async

Mô hình lập trình Async là một cách để viết mã không đồng bộ theo cách ngắn gọn và dễ đọc hơn.Để sử dụng mô hình lập trình ASYNC, bạn sử dụng từ khóa ** Await ** để đình chỉ thực thi mã của bạn cho đến khi một tác vụ kết thúc.

Để sử dụng mô hình lập trình ASYNC với điều khiển BackgroundWorker, trước tiên bạn cần chuyển điều khiển BackgroundWorker vào đối tượng ** IASYNCRESULT **.Bạn có thể làm điều này bằng cách gọi thuộc tính ** Asyncresult ** của điều khiển Backgroundworker.

Khi bạn đã chuyển điều khiển Backgroundworker vào đối tượng ** IAnyNCRESULT **, bạn có thể sử dụng từ khóa ** Await ** để đình chỉ thực thi mã của bạn cho đến khi nhiệm vụ chạy dài được hoàn thành.

Dưới đây là một ví dụ về cách sử dụng mô hình lập trình Async với điều khiển BackgroundWorker:

`` `VBNet
Dim Worker as Backgoundworker = new Backgoundworker ()
worker.workerReportSproTHER = true

worker.dowork += sub (người gửi là đối tượng, e như doworkeventargs)
'Thực hiện nhiệm vụ chạy dài ở đây
Kết thúc phụ

Worker.ProTHERChanged += sub (người gửi là đối tượng, e như ProgressChangedEventArgs)
'Cập nhật giao diện người dùng với tiến trình ở đây
Kết thúc phụ

nhân viên.runworkerasync ()

'Đợi nhiệm vụ chạy dài kết thúc
đang chờ công nhân.asyncresult
`` `

### Phần kết luận

Trong bài viết này, chúng tôi đã học cách lập trình giao diện người dùng đa nhiệm trong VB.NET bằng cách sử dụng điều khiển BackgroundWorker và mô hình lập trình Async.Điều khiển BackgroundWorker cho phép bạn thực hiện các tác vụ chạy dài trong nền trong khi giao diện người dùng của bạn vẫn phản hồi.Mô hình lập trình ASYNC cho phép bạn viết mã không đồng bộ theo cách ngắn gọn và dễ đọc hơn.

## hashtags

* #MultitAsking
* #Giao diện người dùng
* #vb.net
* #backgroundworker
* #Async
=======================================
**#Multitasking #UserInterface #vb.net #backgroundworker #Async**

## Programming the Multitasking User Interface in VB.NET: BackgroundWorker and Async Programming

In this article, we will learn how to program a multitasking user interface in VB.NET using the BackgroundWorker control and the async programming model.

### The BackgroundWorker Control

The BackgroundWorker control is a Windows Forms control that allows you to perform long-running tasks in the background while your user interface remains responsive. To use the BackgroundWorker control, you first need to add it to your form. You can do this by right-clicking on your form in the Designer and selecting **Add -> Windows Forms Control -> BackgroundWorker**.

Once you have added the BackgroundWorker control to your form, you need to set its **WorkerReportsProgress** property to **True**. This will allow the BackgroundWorker control to send progress notifications to your user interface. You can then use these progress notifications to update the user interface with the status of the long-running task.

To start a long-running task, you call the **RunWorkerAsync** method of the BackgroundWorker control. This method will start the task in a background thread and return immediately. The task will continue to run in the background until it is finished, or until you call the **CancelAsync** method of the BackgroundWorker control.

When the task is finished, the BackgroundWorker control will call the **DoWork** event handler. You can use this event handler to perform the long-running task. The **DoWork** event handler is called in a background thread, so you must not access the user interface from this event handler.

To update the user interface with the status of the long-running task, you can use the **ReportProgress** method of the BackgroundWorker control. This method takes a progress percentage as a parameter. The BackgroundWorker control will then call the **ProgressChanged** event handler. You can use this event handler to update the user interface with the progress of the long-running task.

### Async Programming

The async programming model is a way to write asynchronous code in a more concise and readable way. To use the async programming model, you use the **await** keyword to suspend execution of your code until a task is finished.

To use the async programming model with the BackgroundWorker control, you first need to cast the BackgroundWorker control to an **IAsyncResult** object. You can do this by calling the **AsyncResult** property of the BackgroundWorker control.

Once you have cast the BackgroundWorker control to an **IAsyncResult** object, you can use the **await** keyword to suspend execution of your code until the long-running task is finished.

Here is an example of how to use the async programming model with the BackgroundWorker control:

```vbnet
Dim worker As BackgroundWorker = New BackgroundWorker()
worker.WorkerReportsProgress = True

worker.DoWork += Sub(sender As Object, e As DoWorkEventArgs)
' Perform long-running task here
End Sub

worker.ProgressChanged += Sub(sender As Object, e As ProgressChangedEventArgs)
' Update user interface with progress here
End Sub

worker.RunWorkerAsync()

' Wait for long-running task to finish
await worker.AsyncResult
```

### Conclusion

In this article, we learned how to program a multitasking user interface in VB.NET using the BackgroundWorker control and the async programming model. The BackgroundWorker control allows you to perform long-running tasks in the background while your user interface remains responsive. The async programming model allows you to write asynchronous code in a more concise and readable way.

## Hashtags

* #MultitAsking
* #UserInterface
* #vb.net
* #backgroundworker
* #Async
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top