Witam!
W większości tematów dotyczących wątków na tym forum można przeczytać, że jeżeli odwołujemy się do kontrolek z innego wątku niż ten, który ją utworzył należy użyć funkcji Invoke.
Zastanawiam się czy aby na pewno jest to konieczne.
void Run()
{
for (int i = 0; i < 10000; i++)
{
labelTest.Text = String.Format("Run {0}", i);
//Thread.Sleep(1000);
//this.Invoke(this.m_DelegateAddString, new object[] { String.Format("Run {0}", i) });
}
}
private void buttonStart_Click(object sender, EventArgs e)
{
//m_DelegateAddString = new DelegateAddString(this.AddString);
Thread t = new Thread(Run);
t.Start();
}
Tworzę sobie wątek i zmieniam w nim pole Text kontrolki labelTest i wszystko działa poprawnie. Probowałem na wiele sposób doprowadzić do zawieszenia aplikacji w podobny sposób ale mi się nie udało.