When the update of the textbox is made from an other thread, make the update through a delegate.
Sample code :
SynchronizationContext.Current.Send((state) =>
{
richTextBox1.Text=richTextBox1.Text + szData[0];
}
, null);
See google for further reading on InvokeRequired and BeginInvoke or SynchronizationContext.Current
Piet