Я не могу понять, как сделать приложение С# Windows Form писать в текстовое поле из потока. Например, в Program.cs мы имеем стандартный main(), который рисует форму:
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}
Тогда мы имеем в Form1.cs:
public Form1()
{
    InitializeComponent();
    new Thread(SampleFunction).Start();
}
public static void SampleFunction()
{
    while(true)
        WindowsFormsApplication1.Form1.ActiveForm.Text += "hi. ";
}
Неужели я об этом совершенно не согласен?
UPDATE
Вот пример рабочего кода, предоставленный от bendewey:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        new Thread(SampleFunction).Start();
    }
    public void AppendTextBox(string value)
    {
        if (InvokeRequired)
        {
            this.Invoke(new Action<string>(AppendTextBox), new object[] {value});
            return;
        }
        textBox1.Text += value;
    }
    void SampleFunction()
    {
        // Gets executed on a seperate thread and 
        // doesn't block the UI while sleeping
        for(int i = 0; i<5; i++)
        {
            AppendTextBox("hi.  ");
            Thread.Sleep(1000);
        }
    }
}