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); } } }