Avatar billede kennethjohnsen Nybegynder
26. februar 2009 - 14:57 Der er 4 kommentarer og
1 løsning

Kan man opdatere en tekstboks mens en løkke kører?

Jeg har en løkke (i C#), der laver en masse arbejde.
Jeg kunne godt tænke mig at opdatere en TextBox med information om hvordan det forløber.
Men hvis jeg f.eks. har nogle linier alá:

MinTextBox.Text = "Nået til punkt 1";

så opdateres denne først når løkken er kørt færdig.

Kan man få den til at gentegne tekstboksen mens løkken kører (helst uden brug af backgroundworker/threads osv).

Mvh. Kenneth.
Avatar billede arne_v Ekspert
26. februar 2009 - 15:02 #1
Der er vist ingen gode shortcuts.

Kør din tunge operation i en tråd og brug Invoke til at opdatere GUI med.
Avatar billede speedy Nybegynder
26. februar 2009 - 15:05 #2
Enig med arne_v med hensyn til at bruge en tråd.

I din situation lyder det til at du kunne få meget gavn af en BackgroundWorker. Det er nemt at gå til, hvis du bare googler BackgroundWorker skal du nok finde et par gode eksempler.
Avatar billede runesoft Nybegynder
26. februar 2009 - 16:00 #3
Du kunne også kalde Application.DoEvents(); i din løkke.
Så kan windows opdatere brugergrænsefladen i din application og du opnår at din applikation ikke fryser
Avatar billede arne_v Ekspert
26. februar 2009 - 16:20 #4
Application.DoEvents();

er en nødløsning.

De relevante søgeord i Google er:
  "DoEvents is evil"
Avatar billede mbm2016 Nybegynder
28. februar 2009 - 13:11 #5
Importer bibloteket:
using System.Threading;

Du kan lave/køre en tråd sådan her (Eksempel):

public void StartTråd()
{
  Thread thr = new Thread(new ThreadStart(Tråden));
  thr.Start();
}

void Tråden()
{
  // Koden herinde bliver afviklet seperat.
  // Her kan du indsætte din løkke
}

så kan du lave et delegat og kalde det med Invoke
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