Tách các chủ đề giao diện người dùng từ các chủ đề khác là thực hành tốt, nhưng bạn vẫn cần phải vượt qua thông tin trở lại và ra giữa các chủ đề. Ứng dụng multithreaded của bạn thường sẽ cần phải có khả năng sau đây: ● lấy được các kết quả từ một chủ đề nền và Cập Nhật giao diện người dùng. ● báo cáo tiến đến giao diện người dùng như là một chủ đề nền thực hiện xử lý của nó. ● kiểm soát nền thread từ giao diện người dùng, ví dụ: cho phép người dùng hủy bỏ việc xử lý nền. Một cách hiệu quả để tách các giao diện người dùng mã từ mã xử lý các chủ đề nền là để cơ cấu các ứng dụng của bạn về nhiệm vụ, và để đại diện cho mỗi nhiệm vụ bằng cách sử dụng một đối tượng đóng gói tất cả các nhiệm vụ chi tiết. Một nhiệm vụ là một đơn vị của công việc mà người dùng mong muốn để có thể thực hiện trong các ứng dụng. Trong bối cảnh đa luồng, đối tượng tác vụ đóng gói tất cả các chi tiết luồng để cho họ được sạch tách ra khỏi giao diện người dùng. Bằng cách sử dụng các mô hình công việc, bạn có thể đơn giản hóa các mã của bạn khi sử dụng nhiều chủ đề. Các mô hình nhiệm vụ rõ ràng tách chủ đề quản lý mã từ giao diện người dùng mã. Giao diện sử dụng thuộc tính và phương pháp được cung cấp bởi các đối tượng công việc thực hiện các hành động như bắt đầu và dừng tác vụ, và để truy vấn họ cho tình trạng. Đối tượng tác vụ cũng có thể cung cấp một số sự kiện, cho phép thông tin trạng thái được thông qua quay lại giao diện. Những sự kiện này nên tất cả được bắn vào các chủ đề giao diện người dùng để cho giao diện người dùng không cần phải được nhận thức của các chủ đề nền. Bạn có thể đơn giản hóa các chủ đề tương tác đáng kể bằng cách sử dụng một đối tượng tác vụ mà là trách nhiệm kiểm soát và quản lý các chủ đề nền nhưng cháy sự kiện có thể được tiêu thụ bởi giao diện và đảm bảo trên các chủ đề giao diện người dùng. Đối tượng tác vụ có thể được tái sử dụng trong các bộ phận khác nhau của ứng dụng, hoặc ngay cả trong các ứng dụng khác. Hình 6.1 minh hoạ các cấu trúc tổng thể của các mã khi bạn sử dụng các mô hình công việc.
đang được dịch, vui lòng đợi..
![](//viimg.ilovetranslation.com/pic/loading_3.gif?v=b9814dd30c1d7c59_8619)