Ciao Luigi.
Non vedendo tutto il codice, non posso dirti molto.
Intanto, comunque, dovresti modificare il codice in questo modo:
delegate void dl(string text);
private void RoutineCheGiraInThreadSeparato()
{
this.Invoke(new dl(ScriviTextBox, Message));
}
private void ScriviTextBox(string text)
{
tb.AppendText(text);
}
Il codice che ti ho postato mostra l'utilizzo del delegate per accedere ad un controllo gestito dal thread principale(o comunque da un altro thread).
Sicuramente non basta ad *aggiustare* la tua applicazione, però potrebbe essere un punto di partenza.
Comunque rimango a disposizione per ulteriori info.
Facci sapere....
Ciao.