C# 跨线程调用窗体控件有关问题

C# 跨线程调用窗体控件问题
有两个线程,主线程接收数据,子线程显示在richtextbox中。在跨线程调用过程中,子线程显示数据的程序运行较快,主线程接收数据的程序运行较慢,这就导致了在新数据的到来之前,子线程重复不断的显示上一次的数据。请问各位大牛,有什么好方法控制子线程不要重复显示。
主线程代码:
private void btnConnect_Click(object sender, EventArgs e)
        {
            NetConnect netConnect = new NetConnect();               //实例化类
            netConnect.Connect(t0, ServerIP.Text, ServerPort.Text); //调用子函数进行网络连接            
            netConnect.Read();                                     //连接成功,接收数据
            MessagePrintThread = new Thread(new ThreadStart(rtbThreadFlush)); //接收到的数据显示在rtb控件上
            MessagePrintThread.Start();                                       //启动线程        
        }

子线程代码
private void rtbThreadFlush()
        {
            while (true)
            {
                Thread.Sleep(200);     //等待异步操作完成
                FlushThreadFunction(); //调用此线程的功能函数,进行刷新
            }
        }
        private void FlushThreadFunction()
        {
            //查询rtb控件的 InvokeRequired 属性,为true,用委托调用;为false,直接调用。
            if (this.rtb.InvokeRequired)
            {
                rtbFlush flush = new rtbFlush(FlushThreadFunction);
                this.Invoke(flush);                               //通过代理调用刷新方法
            }
            else
            {
                this.rtb.AppendText(NetConnect.content);         //直接调用                
            }
        }

------解决思路----------------------
采用事件机制,主线程接收到数据,触发子线程显示事件。
------解决思路----------------------
委托函数里怎么有while(true)???
这是坑爹的代码啊