2014-02-18 125 views
-1

我正在編寫一個程序,它使用backgroundWorker1_doWork()遞歸填充字符串[]數組並返回它通過DoWorkEventArgs e,你怎麼做?謝謝Backgroundworker返回一個字符串[]數組

+2

這是不是「得到提示」網站,這是一個問題/答案的網站。請發佈您的當前代碼,並將您的帖子修改爲可以有特定答案的特定問題。 –

回答

3

如果我理解你的問題正確,那麼你可以與string[]陣列backgroundWorker1_doWork()事件處理程序中設置e.Result然後在RunWorkerCompleted事件處理程序使用它。

以下是我用winforms編寫的代碼。

BackgroundWorker work = null; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     work = new BackgroundWorker(); 
     work.DoWork += new DoWorkEventHandler(work_DoWork); 
     work.RunWorkerCompleted += new RunWorkerCompletedEventHandler(work_RunWorkerCompleted); 
     work.RunWorkerAsync(); 
    } 

    void work_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
    { 
     string[] arr = (e.Result as string[]); 

     foreach (var item in arr) 
     { 
      MessageBox.Show(item);  
     } 
    } 

    void work_DoWork(object sender, DoWorkEventArgs e) 
    { 
     string[] arr = new string[3]; 
     arr[0] = "aa"; 
     arr[1] = "bb"; 
     arr[2] = "cc"; 

     e.Result = arr; 
    } 

希望這有助於

+0

感謝薩馬爾,但那個結果只是一個字符串,我怎麼得到一個字符串[]數組返回? – user1387287

+0

什麼阻止你給e.Result所需的數組?檢查我更新的答案。 – samar

+0

如果這個答案對你有用,那麼請勾選它作爲答案和/或upvote它。 :) – samar

相關問題