Help com threads no cliente

pow pessoal ja to a um mes com esse problema… não consigo domar essas threads …

o servidor ta de boa… o problema é só no cliente msm,

peço ajuda à vcs, brigadão…ó cod tá meio gambi… mas depois de tantas alterações…

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.Text;

namespace ClienteChat
{
public partial class Cliente : System.Web.UI.Page
{
public static TcpClient tcpClient;

    protected void Page_Load(object sender, EventArgs e)
    {
        bool envia = false;
        if (!IsPostBack)
        {
            string ipAddress = "187.25.175.84";

            IPAddress address = IPAddress.Parse(ipAddress);

            tcpClient = new TcpClient();
            tcpClient.Connect(new IPEndPoint(Dns.Resolve(ipAddress).AddressList[0], 4019));
            ImplementaThread.Run(tcpClient);
            envia = true;
        }
        txtRecebe.Text += ImplementaThread.ReceberMensagens(envia);
        
    }
    
    public void EnviarMensagem()
    {
        string mensagem = txtMsg.Text;

        NetworkStream mandaStream = tcpClient.GetStream();

        /* adiciona um caractere especial para melhorar a 
         * impressão da mensagem no servidor console
         * e converte a mensagem em um array de bytes
         */
        byte[] saida = Encoding.ASCII.GetBytes(mensagem + "$");

        //envia a mensagem ao servidor
        mandaStream.Write(saida, 0, saida.Length);
        mandaStream.Flush();
    }

    protected void btnEnviar_Click(object sender, EventArgs e)
    {
        EnviarMensagem();
        txtMsg.Text = "";
    }
}

}

/////////

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Threading;
using System.Net.Sockets;
using System.Text;

namespace ClienteChat
{
public class ImplementaThread
{
public static Thread receiveThread;
public static TcpClient tcpCliente;
public static void Run(TcpClient tcpClient)
{
tcpCliente = tcpClient;

        receiveThread = new Thread(new ThreadStart(ThreadProcPollOnEthernet));
        receiveThread.Name = "Client's Receive Thread";
        receiveThread.ApartmentState = ApartmentState.MTA;
        receiveThread.Start();
    }

    private static void ThreadProcPollOnEthernet()
    {
        while (true)
        {
            Thread.Sleep(100);
            try
            {
                ReceberMensagens(true);
            }
            catch (Exception)
            {
                return;
            }
        }
    }

    public static string ReceberMensagens(bool envia)
    {
        NetworkStream servidorStream = tcpCliente.GetStream();
        byte[] entrada = new byte[10000];
        //recebe uma mensagem do servidor
        if (envia)
        {
            return "oi";
        }
        servidorStream.Read(entrada, 0, (int)tcpCliente.ReceiveBufferSize);
        //converte a mensagem do servidor em uma string
        string respostaServidor = Encoding.ASCII.GetString(entrada);
        if (!string.IsNullOrEmpty(respostaServidor))
        {
            return respostaServidor;
        }
        return string.Empty;
    }
}

}

utilize [code] em seus códigos postados. O que está acontecendo com o código? Qual é a sua dúvida? O que faz o código acima?:-o

O código acima tenta receber uma mensagem provida pelo servidor e joga a mensagem para o text box, td isso gerenciado por threads…