Да, это проблема многопоточности.Есть много способов достичь этого.Вот объяснение того, что такое многопоточность. Что такое многопоточность?
Кроме того, вот мой любимый учебник по многопоточности: albahari.com
Потоки имеют свой собственный стек иработать самостоятельно.Вот один пример того, как порождать поток:
Thread _thread = new Thread(() => { MessageBox.Show("Hello world!", "Spawned in a different thread"); });
_thread.Start();
Чтобы вызвать ваш richtextbox из другого потока, один из способов сделать это - создать внутри формы метод, который добавляет текст в текстовое поле, вызывая его,Вот пример того, как это сделать:
public void AddText(string Text)
{
if (this.textBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(AddText); // Delegate
this.Invoke(d, new object[] { text });
}
else { this.textBox1.AppendText(text); }
}
Вот ссылка MSDN на то, что вы пытаетесь сделать:
http://msdn.microsoft.com/en-us/library/ms171728.aspx