2011-07-29 61 views
1

我正在使用後臺工作人員在某些文件上執行一個漫長的過程。我從textBox1中獲取目錄的地址,並從textBox2中獲取用於處理函數的文件的地址。我也有一個ComboBox。根據組合框的選定值,程序通過簡單的開關盒選擇不同的功能。在BackGroundWorker中讀取textBox.Text

現在的問題是我無法訪問BackGroundWorker_DoWork中這些文本框和組合框的值。我當然會得到一個從未創建的線程訪問控件的例外。我已經搜索了很多關於代表和所有這些。到目前爲止我看到的例子都是關於給程序內部的文本框分配一個文本。而我想要做的是讀取用戶插入到文本框中的文本。由於我對代表的概念不太瞭解,我想知道如何閱讀和使用textBoxes和ComboBox的文本並在BackGroundWorker中處理它們?

抱歉,由於安全政策,我無法在此發佈代碼。

/MoNoo

回答

1

你不說,如果這是的WinForms,WPF或Silverlight,但在WPF你會使用組合框的調度屬性,像這樣做:

string theText; 

    myComboBox.Dispatcher.Invoke(DispatcherPriority.Normal, 
      new Action(delegate() 
      { 
       theText = myComboBox.Text; 
      } 
     )); 

這將調用主線程並再次返回。