Witam!
Jeżeli był już podobny temat to przepraszam i proszę o link do niego.
Mam taki problem, chciałbym dodać do programu nowy wątek. Na początku chciałem zrobić coś prostego, tzn chciałbym aby po kliknięciu na przycisk zmieniała się wartość na labelu. Napisałem coś takiego:
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.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Wątek w = new Wątek();
Thread wątek = new Thread(new ThreadStart(w.uruchom));
wątek.Start();
label2.Text = wątek.ThreadState.ToString();
while (wątek.ThreadState != ThreadState.Aborted)
{
w.uruchom();
Thread.Sleep(500);
}
}
}
public class Wątek
{
private int i = 0;
Form1 f = new Form1();
public void uruchom()
{
f.label1.Text = i++.ToString();
}
}
}
Wydaje mi się, że teoretycznie program działa poprawnie natomiast praktycznie label1 ciągle wyświetla "label1".
Jakieś sugestie co do tego gdzie leży mój błąd?