2008-10-21 31 views
5

Trong một WinForms UserControl, tôi sẽ chuyển dữ liệu đến luồng GUI chính bằng cách gọi phương thức này.BeginInvoke() từ bất kỳ phương thức nào của điều khiển. Tương đương trong Silverlight UserControl là gì?Trong Silverlight, làm thế nào để gọi một hoạt động trên Chủ đề công văn chính?

Nói cách khác, làm thế nào tôi có thể lấy dữ liệu được cung cấp bởi một chuỗi công nhân tùy ý và đảm bảo rằng nó được xử lý trên sợi trục chính?

Trả lời

6

Sử dụng thuộc tính Bộ điều phối trên lớp UserControl.

private void UpdateStatus() 
{ 
    this.Dispatcher.BeginInvoke(delegate { StatusLabel.Text = "Updated"; }); 
} 
2
private void UpdateStatus() 
    { 
     // check if we not in main thread 
     if(!this.Dispatcher.CheckAccess()) 
     { 
      // call same method in main thread 
      this.Dispatcher.BeginInvoke(UpdateStatus); 
      return; 
     } 

     // in main thread now 
     StatusLabel.Text = "Updated"; 
    } 
Các vấn đề liên quan