2012-11-23 29 views
7

Tôi có Ứng dụng Biểu mẫu Windows C# với thanh tiến trình. Tôi muốn tiến triển động dựa trên một số trạng thái phương thức. Tôi có phương thức đó trong một lớp riêng biệt, và đang tạo một luồng mới cho phương thức đó, với một ủy nhiệm để chuyển trạng thái của phương thức cho chuỗi chủ.Điều phối viên không xuất hiện trên Ứng dụng Biểu mẫu Windows C#

Tình huống tương tự tôi có thể giải quyết trong ứng dụng WPF bằng cách sử dụng progressbar.Dispatcher nhưng trong ứng dụng Windows Forms không có Bộ điều phối, ngay cả khi tôi sử dụng không gian tên System.Threading.

progressbar.Dispatcher dường như chỉ khả dụng trong ứng dụng WPF.

Trả lời

11

Trong winforms bạn có thể sử dụng ProgressBar.Invoke hoặc ProgressBar.BeginInvoke để cập nhật điều khiển từ chuỗi khác.

5

Trong ứng dụng Biểu mẫu Windows BackgroundWorker phải phù hợp hoàn hảo cho công việc của bạn. Cụ thể, nó có phương thức ReportProgress để gửi tiến trình tùy thuộc vào các phép tính của bạn và ProgressChanged để theo dõi các thay đổi từ chuỗi giao diện người dùng. Xem MSDN article để biết chi tiết đầy đủ

4

Trong WinForms, các phương thức Invoke/BeginInvoke trực tiếp trên các đối tượng điều khiển như bạn có thể thấy từ các tài liệu của System.Windows.Forms.Control. Vì vậy, bạn có ví dụ progressBar.BeginInvoke(...).

+1

's/WPF/Windows Forms /' – shambulator

+0

@shambulator: Cảm ơn. – Tudor