tenho um programa de chat, onde faço um thread pra ficar lendo mensagens de um StreamReader. só que tem um problema: a funcao que vai no ThreadStart "nao consegue" alterar a variavel text de um richtextbox. alguem pode me ajudar?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net.Sockets;
using System.Threading;
namespace ChatClient
{
public partial class Form1 : Form
{
private StreamReader sr;
private StreamWriter sw;
public Form1()
{
try
{
TcpClient client = new TcpClient("localhost", 12345);
NetworkStream ns = client.GetStream();
sr = new StreamReader(ns);
sw = new StreamWriter(ns);
}
catch (Exception e) { MessageBox.Show(e.ToString()); }
InitializeComponent();
Thread t = new Thread(new ThreadStart(readMess));
t.Start();
}
private void button1_Click(object sender, EventArgs e)
{
string msg = textBox1.Text;
try
{
textBox1.Text = "";
sw.WriteLine(msg);
sw.Flush();
textBox1.Focus();
}
catch (Exception ee) { MessageBox.Show(ee.ToString()); }
}
public void chatText(string text)
{
// AQUI APRESENTA O PROBLEMA: InvalidOperationException
chat.Text+=text;
}
public void readMess()
{
string line;
while ((line = sr.ReadLine()) != null)
{
chatText(line);
}
Thread.Sleep(100);
}
}
}










