Gå til innhold

Anbefalte innlegg

Skrevet

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 ;)

Videoannonse
Annonse
Skrevet

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.

Skrevet

this.ShowDialog() ville fått et program til å stanse ville jeg tro....

siden threaden da venter til at den selv gir tilbake et resultat, noe som da aldri vil skje, da den venter på seg selv....

 

Men det er bare teorien min da.

  • 3 uker senere...
Skrevet

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

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...