For updating the text, use a public or internal method in Form1. Check the InvokeRequired property. If it is true, call this.Invoke on the same function. E.g.
public void UpdateText(string newText)
{
if (InvokeRequired)
{
this.Invoke(new AFStringDelegate(UpdateText), newText);
return;
}
textbox.Text = newText;
}
The delegate is available in Microsoft's Application Framework. You can also declare it:
public delegate void AFStringDelegate(string s);
And now call the UpdateText method from your background thread.