Gå til innhold

Anbefalte innlegg

Hei,

 

Kjører en Form i en tråd med Thread thread = new Thread(new ThreadStart ++)

 

Har en start metode i Formen som jeg kaller this.ShowDialog()

 

Problemet er at det tydeligvis er umulig å interrupte en form/tråd som venter på dialogresult.

 

Jeg har prøvd å kjøre en while loop som kaller Show() men det blir ikke pent - formen blir jo utilgjengelig på den måten også..

 

Jeg trenger en form som kjører i en egen tråd og som jeg kan avbryte enten fra systemet eller ved at bruker trykke på X..

 

Jeg er veldig ny i C# så håper noen har en enkel løsning ;)

Lenke til kommentar
Videoannonse
Annonse

Hei, la oss si det slik:

 

1. du har dene threden!

Thread firstThread = new Thread(new ThreadStart(while_threading_running));
firstThread.Start();

 

2. Du vill at noe skal skje inne i denne som krever at det ikke er i threden,

Dette fikser du lett slik.

La oss si at du har en listview som du vil ha noen punkter i. Og at du må av bryte threden. Legg da dette i en egen void slik.

 


public void update_ls()
       {
           if (this.InvokeRequired)
           {
               this.Invoke(new MethodInvoker(update_ls));
               return;
           }

           lsOutput.Items.Add("SUCKER!");
           }
       }

 

Og kjør voiden hvor du måtte ønske i Threaden.

Lenke til kommentar
  • 3 uker senere...

Hei.

 

Du tenker antakelig litt feil strukturelt sett.

 

Når du bruker Threads i Windows Forms (C#), bør du ikke gjøre noe som har med brukeraktivitet å gjøre i en Tråd. All brukeraktivitet bør gjøres i "hovedtråden".

 

Hvis du har flere ting som skal gjøres samtidig, bør du fokusere på å gjøre dette i egne tråder, og heller la "hovedtråden" med sine Former styre dette.

 

Husk, det er fullt mulig å ha 2 eller flere aktive former samtidig fra en tråd.

 

Bjørn Willy Stokkenes

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...