объединяя два приведенных выше ответа, я думаю, что это лучший компромисс:
textBox1.Invoke(new Action(() => { /* your code here */ }), new object[] { "a", "b" });
Редактировать ; заимствовано из этого вопрос
РЕДАКТИРОВАТЬ 2 ; пример с параметрами:
textBox1.Invoke(new Action<string, RichTextBox>((a, b) => {}), new object[] {"a", new RichTextBox() });