Ora è chiaro perchè questo succede.
Grazie di avermi seguito.
Ho però un'ultima richiesta.
Ho passato del tempo davanti questo giretti che hai chiamato "sotto il cofano"
l'ho ridotto e adattato alla mia applicazione.
Ti dico già che funziona ma vorrei che mi spiegassi meglio perchè
Ora posto il codice e vorrei ti soffermassi sui commenti e mi dicessi se sei d'accordo su quello che ho scritto o se c'è qualcosa da rivedere.
codice:private Thread ThreadDiAppoggio; delegate void SetTextCallback(); private void Protocollo_MessaggioTHARGAricevuto(object sender, MessaggioTHARGAricevutoEventArgs e) { ThreadDiAppoggio = new Thread(new ThreadStart(MetodoRichiamoThreadTHARGA));// Arrivo qui e so che l'evento è stato generato da un tread non gui ThreadDiAppoggio.Start(); // Quindi ne istanzio uno nuovo e gli "dico di avviarsi" partendo da MetodoRichiamoThreadTHARGA } // | private void MetodoRichiamoThreadTHARGA() //Qui parte <------| { //e vado a richiamare il metodo "sotto il cofano" MetodoDaTreadGiustoTHARGA(); // } // private void MetodoDaTreadGiustoTHARGA() // { // if (button1.InvokeRequired) //al primo if chiedo se è possibile modificare la gui |--->Ora richiedo all'if lo stato del bottone e questa volta { //in questo caso interrogando un tasto presente in gui | mi dice che è modificabile probabilmente perchè è quì che SetTextCallback delegato; //NON si può! Allora "Faccio puntare al delegato | ritorno al tread giusto. delegato = MetodoDaTreadGiustoTHARGA;//questo stesso metodo | | Invoke(delegato); //e lo invoko------------------------------------------------ | } // | else // | { // | QuelloCheVolevoFareQuandoArrivavaIlMessaggioTHARGA();// | } // | } // | private void QuelloCheVolevoFareQuandoArrivavaIlMessaggioTHARGA()<--------------------------------------------------| {// Il nome di questo metodo non presta a commenti!! textBoxTHARGA.Text = null; for (int counter = 0; (counter < Protocollo.MessaggioRicevuto.Length); counter++) textBoxTHARGA.AppendText(Protocollo.MessaggioRicevuto[counter].ToString()); }

Rispondi quotando