Avatar billede ahara Nybegynder
07. juni 2005 - 20:45 Der er 3 kommentarer og
1 løsning

Problemer med systemtråden

Jeg har to knapper i en form. Jeg trykker på den ene knap og den eksekverer en masse kode. Men den køre dette kode kan jeg ikke trykke på den anden knap og afbryde kørslen af det første kode. Kan det lade sig gøre uden at lave to tråde, men blot benytte systemtråden?

Tak
AHR
Avatar billede arne_v Ekspert
07. juni 2005 - 21:16 #1
ikke så vidt jeg ved
Avatar billede arne_v Ekspert
07. juni 2005 - 21:17 #2
men et eksempel til inspiration:

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;

public class MainForm : Form
{
    private ProgressBar bar;
    private Button start;
    private Button abort;
    private Thread t;
   
    public MainForm()
    {
        bar = new ProgressBar();
        start = new Button();
        abort = new Button();
        SuspendLayout();
        bar.Location = new Point(50, 50);
        bar.Size = new Size(200, 50);
        bar.Name = "Progress Bar";
        bar.Minimum = 0;
        bar.Maximum = 60;
        bar.Value = 0;
        bar.Step = 1;
        start.Location = new Point(50,150);
        start.Size = new Size(200, 50);
        start.Name = "Start Button";
        start.Text = "Start";
        start.Click += new EventHandler(StartClick);
        abort.Location = new Point(50,250);
        abort.Size = new Size(200, 50);
        abort.Name = "Abort Button";
        abort.Text = "Abort";
        abort.Click += new EventHandler(AbortClick);
        ClientSize = new Size(300, 350);
        Controls.Add(bar);
        Controls.Add(start);
        Controls.Add(abort);
        Name = "Main Form";
        Text = "Main Form";
        ResumeLayout(false);
    }
    void Copy()
    {
        for(int i = 0; i < 60; i++)
        {
            bar.Value = i;
            Thread.Sleep(1000);
        }
    }
    void StartClick(object sender, EventArgs e)
    {
        t = new Thread(new ThreadStart(Copy));
        t.Start();
    }
    void AbortClick(object sender, EventArgs e)
    {
        t.Abort();         
    }
    [STAThread]
    public static void Main(string[] args)
    {
        Application.Run(new MainForm());
        Application.Exit();
        Environment.Exit(0);
    }
}
Avatar billede ahara Nybegynder
07. juni 2005 - 21:42 #3
Jamen det virker jo. Super - et svar og der er point
Avatar billede arne_v Ekspert
07. juni 2005 - 21:45 #4
kommer her
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