[C#] Thread e accesso a label form principale

lunedì 04 maggio 2009 - 12.12

_emi_ Profilo | Newbie

Ciao,

so che il problema è trattato ampiamente nel forum e sul web, ma ancora non sono riuscito a risolvere.

Praticamente ho realizzato una piccola applicazione server che riceve dati da un PDA.
Il trasferimento dati funziona, vorrei però visualizzare su una label del form principale del server lo stato delle operazioni (attesa connessione, connessione riuscita ecc.).

Arriva il codice (se così si può chiamare)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.IO; using System.Threading; namespace riprovaServer { public partial class Form1 : Form { public Form1() { InitializeComponent(); } static string ipServer = "192.168.0.198"; static int port = 27300; static string nomeFile = @"C:\prova.txt"; Server objServer; static string clientAddress; static bool Started = false; string status = ""; string serverState=""; private delegate void SetLabelTextDelegate(string mes); private void SetLabelText(string mes) { if (this.InvokeRequired) { this.BeginInvoke(new SetLabelTextDelegate(SetLabelText),new object[] { mes }); return; } label1.Text = mes; } public class Server:Form1 { IPAddress localAddr = IPAddress.Parse(ipServer); TcpListener server; public void START() { server = new TcpListener(localAddr, port); server.Start(); Started = true; Thread th = new Thread(new ThreadStart(ServerThread)); th.Start(); } public void ServerThread() { SetLabelText("server online"); while (Started) { try { TcpClient client = server.AcceptTcpClient(); ClientManager manager = new ClientManager(client); manager.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } .........................

Facendo il debug, alla chiamata "SetLabelText("server online");" in serverThread, l'if viene saltato e sinceramente non capisco il perchè.

Qualcuno mi può illuminare? Cosa sbaglio?

Vi ringrazio

Non insultatemi per la stesura del codice, so che fa schifo, ma sono ancora un principiante e cerchero di migliorarlo !


...Non ho ancora risolto, e così mi sono spostato sullo studio delle classi xml.

Intanto speravo in un aiuto, ma vedo che nessuno mi ha risposto
Ho esposto male il mio problema, vi servono più dettagli ?

Fatemi sapere, vorrei proprio risolvere la questione!

rigrazie



Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5