Avatar billede flyver23 Nybegynder
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."
Avatar billede bennytordrup Nybegynder
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());
        }
    }
}
Avatar billede flyver23 Nybegynder
17. august 2006 - 11:03 #2
Mange tak for hjælpen.
Ser ud til jeg hellere må finde noget teori om Invoke..
Hilsen Flyver23
Avatar billede bennytordrup Nybegynder
17. august 2006 - 11:35 #3
Yoda har en udmærket artikel omkring Threads og tilhørende problemstillinger. Se på den også.

http://www.yoda.arachsys.com/csharp/threads/

Printbar version: http://www.yoda.arachsys.com/csharp/threads/printable.shtml

Yoda generelt omkring C#:
http://www.yoda.arachsys.com/csharp/
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester