Questa è difficile![]()
Dunque, sto cercando, e con non poche difficoltà, di passare ad un Thread il riferimento ad un oggetto Windows.Form, nello specifico una Label.
L'idea è questa, il Thread è uno ed asincrono, senza bloccare l'applicazione devo attendere un determinato tempo prima di avviare una certa funzione, quindi ho pensato, per coinciare, di provare a modificare in maniera asincrona il testo di una Label.
Come vedete al Click di button1 creao un Thread, al quale passo per riferimento la label1, successivamente avvio il Thread.codice:public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Prova_Thread pt = new Prova_Thread(ref this.label1); Thread th = new Thread(pt.Esegui); th.Start(); while (!th.IsAlive) ; th.Join(); } } public class Prova_Thread { private volatile Label _Lbl; private int _Conta; public Prova_Thread(ref Label Lbl) { this._Lbl = Lbl; this._Conta = 5; } public void Esegui() { while (this._Conta > 0) { this._Lbl.Text = this._Conta.ToString(); this._Conta--; } } }
Internamente il Thread funziona bene finché non arriva all'istruzione this._Lbl.Text = this._Conta.ToString();
Quì s'incarta.
Ho già tentato in passato con oggetti come array o simili e mi è andata bene, ma questa è la prima volta che provo con oggetti strutturati come una Label.
Avete suggerimenti?
Grazie

Rispondi quotando