Avatar billede ahara Nybegynder
06. november 2007 - 12:37 Der er 5 kommentarer og
1 løsning

Tråde i C# og Windows Forms

Jeg arbejder pt. med Windows Forms og C#, men kan ikke huske hvordan jeg anvender tråde.

Jeg ønsker at starte en tråd når jeg klikker på en knap (funktion) som ligger i Form1.cs klassen. Udover denne klasse har jeg en Program.cs klasse der starter min Windows Form og en MediaPlayer.cs klasse der indeholder kode til en MP3 afspiller.

Tråden skal opdatere tiden der er tilbage i et nummer der afspilles. Hvor er det jeg placerer tråden?
Avatar billede mrbonus Novice
06. november 2007 - 12:56 #1
Jeg er blevet rimelig glad for BackGroundWorker klassen, som sådan set er tråd, plus at du har et event automatisk i den, som du kan lave eventhandling med, her er en video, du hurtigt kan lære at bruge den med

http://channel9.msdn.com/Showpost.aspx?postid=157947
Avatar billede basse55 Nybegynder
06. november 2007 - 18:49 #2
Hvis du blot skal have opdateret tiden, kan du måske overveje at benytte en timer istedet. Så slipper du i al fald for en masse af de problemer der kan være med tråde.

Sebastian
Avatar billede lasserasch Juniormester
07. november 2007 - 08:30 #3
For nu at tage en ting af gangen, så er her et eksempel på hvordan et metode kald foretages på en ny tråd :

---------
void StartnewThread()
{
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(metode1));

t.Start();
}

void metode1 ()
{
// Udfør et eller andet i en ny tråd. Men husk at man ikke kan opdatere UI controls fra en ny tråd med mindre man gør det på en thread safe måde. Altså med en delegate...
}
---------

Når det så er sagt, så vil jeg klar gi' base55 ret i at hvis du blot skal opdatere den resterende tid på et nummer, kan det meget simpelt gøres med blot en enkelt timer.

Se evt. min egen musik/video afspiller : www.skare.com/musicplayer.zip
Her opdateres tidinfo i samme tråd.


/Lasse
Avatar billede lasserasch Juniormester
07. november 2007 - 08:36 #4
Ups. Forkert link.

Mit eksempel ligger her : www.skare.com/simpleplayer.zip

/Lasse
Avatar billede ahara Nybegynder
07. november 2007 - 14:20 #5
Kan i vise et kort eksempel på hvordan timer virker?
Avatar billede lasserasch Juniormester
08. november 2007 - 08:21 #6
public partial class form1 : Form
{

public form1()
        {

            InitializeComponent();
            Timer t1 = new Timer();
            t1.Interval = 5000; // 5 sek.
            t1.Tick += new EventHandler(t1_Tick);
            t1.Start();
        }

  void t1_Tick ( object sender, EventArgs e )
        {
            MessageBox.Show("Tik Tak");
        }

Lige ud af landevejen ;-)

/Lasse
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