Avatar billede hobbittend Novice
22. januar 2012 - 15:05 Der er 5 kommentarer og
1 løsning

Stop udførelse uden at lukke application

Hej.

jeg har et program der starten en udregning, som tager ufatteligt lang tid. Jeg vil gerne have en knap der stopper denne udregning, uden at lukke hverken formen eller programmet ned.

Den stopper heller ikke med at regne selvom jeg trykker luk..

Nogen idéer?

Følgende procedure skal stoppes... eller pauses
Button1:

Do
            Application.DoEvents() ' Will make sure it doesn't freeze while calculating.
            Number += 1 ' The number adds one for each attempt
            LabelNumber.Text = "Trying: " & Number
            For i = 1 To 20 ' create a loop that tries to divide by 1 to 20.
                If Not Number / i = Number \ i Then ' This checks if the number can be divided by i without any remainder
                    ' by checker whether or not the number with all decimals is the same
                    ' as the number without decimals.
                    Exit For

                ElseIf Number / i = Number \ i And i = 20 Then ' if this is true,
                    ' the number has been divided by each number from 1 to 20 without any remainder. Then Number is
                    ' the answer (Number will contain 232792560)
                    TextBox1.Text = Number
                    LabelNumber.Text = "Solved!"
                    Timer1.Stop()
                    Exit Do
                End If

            Next
        Loop
Avatar billede ysangkok Nybegynder
22. januar 2012 - 17:34 #1
En løsning er at starte en ny thread til at lave udregningen. Se http://support.microsoft.com/kb/315577 .

En mere moderne løsning ville være at bruge await/async from VS11.

Se http://msdn.microsoft.com/en-us/gg440604.aspx og http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14058
Avatar billede arne_v Ekspert
23. januar 2012 - 05:15 #2
Jeg ved ikke om jeg vil kalde et developer preview for en moderne loesning.
Avatar billede ysangkok Nybegynder
23. januar 2012 - 05:26 #3
Mere moderne end threads vel. Bare fordi det ikke er stabilt eller modent, betyder det vel ikke at det er umoderne. Jeg tror næppe at det bliver særlig svært at ændre løsningen så den også virker i .NET 5. Kan meget vel være meget mindre arbejde end at bakse med Threads!
Avatar billede arne_v Ekspert
24. januar 2012 - 03:58 #4
Det kan aldrig vaere moderne at bruge noget som leverandoeren fraraader at bruge til produktion.
Avatar billede hobbittend Novice
28. maj 2012 - 11:37 #5
Stadig ingen løsninger?
Avatar billede hobbittend Novice
06. marts 2014 - 16:52 #6
Opgav
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
Kurser inden for grundlæggende programmering

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