Delegate the UI handling to the thread that created the UI object. That is usually the main thread, a.k.a. GUI thread.
void SetTextBoxText(RichTextBox box, string text)
{
if (box.InvokeRequired)
{
box.Invoke(new Action<string>(SetTextBoxText), new object[] { box, text });
return;
}
box.Text = text;
}