Чтобы получить форму, удалите статический модификатор из примера функции и используйте this.BeginInvoke (), как показано в примерах из MSDN.

могу понять, как заставить приложение C # 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. ";
}

Я иду по этому поводу совершенно неправильно?

ОБНОВИТЬ

Вот рабочий код sam, предоставленный от 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);
        }
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос