2014-02-18 4 views
-1

Я пишу программу, которая использует backgroundWorker1_doWork() для рекурсивного заполнения массива [] и возвращает его через DoWorkEventArgs e, как вы это делаете? СпасибоBackgroundworker, чтобы вернуть строку [] array

+2

Это не «получить советы» сайт, это вопрос/ответ на сайте. Пожалуйста, разместите свой текущий код и переустановите свой пост в конкретный вопрос, который может иметь конкретный ответ. –

ответ

3

Если я правильно понимаю ваш вопрос, то вы можете установить e.Result в backgroundWorker1_doWork() обработчика событий с string[] массива, а затем использовать его в 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

Спасибо samar, но этот результат - это просто строка, как мне получить массив [] для возврата? – user1387287

+0

Что мешает вам дать e.Result необходимый массив? Проверьте мой обновленный ответ. – samar

+0

Если этот ответ был полезен для вас, то, пожалуйста, отметьте его как ответ и/или увеличьте его. :) – samar

Смежные вопросы