title: C#: String as parameter to event?
body: <p>I have a GUI-thread for my form and another thread that computes things.</p>
  
  <p>The form has a richtTextBox. I want the worker-thread to pass strings to the form, so that every string is displayed in the textbox.</p>
  
  <p>Everytime a new string is generated in the worker thread I call an event, and this should now display the string.
  But I don't know how to pass the string! This is what I tried so far:</p>
  
  <pre><code>///// Form1
  private void btn_myClass_Click(object sender, EventArgs e)
  {
      myClass myObj = new myClass();
      myObj.NewListEntry += myObj_NewListEntry;
      Thread thrmyClass = new Thread(new ThreadStart(myObj.ThreadMethod));
      thrmyClass.Start();
  }
  
  private void myObj_NewListEntry(Object objSender, EventArgs e)
  {
      this.BeginInvoke((MethodInvoker)delegate
      {
          // Here I want to add my string from the worker-thread to the textbox!
          richTextBox1.Text += "TEXT"; // I want: richTextBox1.Text += myStringFromWorkerThread;
      });
  }
  </code></pre>
  
  <hr>
  
  <pre><code>///// myClass (working thread...)
  class myClass
  {
      public event EventHandler NewListEntry;
  
      public void ThreadMethod()
      {
          DoSomething();
      }
  
      protected virtual void OnNewListEntry(EventArgs e)
      {
          EventHandler newListEntry = NewListEntry;
          if (newListEntry != null)
          {
              newListEntry(this, e);
          }
      }
  
      private void DoSomething()
      {
          ///// Do some things and generate strings, such as "test"...
          string test = "test";
  
  
          // Here I want to pass the "test"-string! But how to do that??
          OnNewListEntry(EventArgs.Empty); // I want: OnNewListEntry(test);
      }
  }
  </code></pre>