17. august 2006 - 10:33
Der er
2 kommentarer og 1 løsning
tråde i win form
Hej. Jeg forsøger at lave en form, hvor jeg vil have en tråd til at vise klokken i en label, for senere at få den til at opdatere label1 hvert sekund. Min Form1 klasse ser sådan ud: using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; namespace Ur { public partial class Form1 : Form { private Thread ur; public Form1() { InitializeComponent(); ur = new Thread(new ThreadStart(UrMetode1)); } private void btnVisKlokken_Click(object sender, EventArgs e) { ur.Start(); } public void UrMetode1() { label1.Text = DateTime.Now.TimeOfDay.ToString(); } } } Jeg får denne fejl når knappen trykkes, og tråden startes. "Handling på tværs af tråde er ugyldig: Objektet 'label1' blev åbnet fra en anden tråd end den tråd, det blev oprettet i."
Annonceindlæg fra Trustworks
Tillid i en Zero-Trust verden
Med voksende trusler, nye EU-krav og øget kompleksitet er cybersikkerhed nu en central ledelsesopgave på linje med strategi og økonomi.
17. august 2006 - 10:37
#1
using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; namespace Ur { public partial class Form1 : Form { private Thread ur; public Form1() { InitializeComponent(); ur = new Thread(new ThreadStart(UrMetode1)); } private void btnVisKlokken_Click(object sender, EventArgs e) { ur.Start(); } private delegate void MethodStringParameterDelegate(string text); private void SetLabel1Text(string text) { if (this.InvokeRequired) this.Invoke(new MethodStringParameterDelegate(SetLabel1Text), new object[] { text } ); else label1.Text = text; } public void UrMetode1() { SetLabel1Text(DateTime.Now.TimeOfDay.ToString()); } } }