Lets say I have Task 1:

```
private void Task1()
{
    //Here is some Code, could be any "longer" Task - 
    //For Example: Grab all words from a .txt File and fill in a List<String>
}

```

Then I have an other Task 2:

```
private void Task2(string word)
{
   //So lets say theres a Label on my WinForm..
   //Now While Task1 is grabbing the words, Task2 should fill a Label 
   //with the added 'word' (parameter) - (Task2 will be called from Task1
}

```

Actually I don't know how to make this possible, or whats the best way. On the UI I should be able to see the `Label.Text` changing (every word).. So I need to make a second Thread? How could I do this? Maybe someone could help me, cheers

**UPDATE:**

I tried it now with the Backgroundworker, but something seems to be false.. its actually not working, nothing happens on the form

Code:

```
public void CreateAndSaveAMatch(DateTime date) //That method is being called several times
{   
    //HERE IS CODE, WHICH CREATES AND SAVES A MATCH

    // Start the asynchronous operation.
    backgroundWorker1.RunWorkerAsync(date);

}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{      
    backgroundWorker1.ReportProgress(0, Convert.ToDateTime(e.Argument).ToShortDateString());          
}

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    label1.Text = (string)e.UserState; //here on the Label I would like to show the Date
}

```