Avatar billede golyf Nybegynder
03. februar 2006 - 12:51 Der er 3 kommentarer og
2 løsninger

Try - Catch - Finally : Problem i VB.NET 2003

Jeg opretter en Thread fra min form og når jeg gerne vil stoppe den foregår det andet sted i koden hørende til selv samme form. Alt det plejer da at virke, men nu lander mit forsøg i catchen hver gang. Faktisk begge. Herunder har jeg skrevet lidt kode, som illustrere min kode:

private sub Stop()
    .....
    Try
        kode....
        Traad.Abort()
        kode....  ' <= Koden her udføres aldrig
    Catch ex2 As Exception
        Debug.WriteLine("1: " & ex2.Message)
    Finally
    End Try
End sub

private sub Private Sub btnStop_Click(...) Handles btnStop.Click
    Try
        Stop()
    Catch ex2 As Exception
        Debug.WriteLine("2: " & ex2.Message)
    Finally
    End Try
End sub

Resultatet er godt nok at min tråd stopper, men i Output står der så:
1: Thread was being aborted. System.Threading.ThreadAbortException: Thread was being aborted.
  at System.Threading.Thread.AbortInternal()
  at System.Threading.Thread.Abort()
  at Noget.Andet.Stop() in C:\...\frmMain.vb:line 3057

2: Thread was being aborted.

Dermed er der masser af kode som springes over. Ved godt det bare kan flyttes ind i Finally delen, men mit problem er mere hvorfor f... lander mit Abort request i en exception og hvorfor ryger det i begge exceptions?

Hvad gør jeg galt?
Avatar billede arne_v Ekspert
03. februar 2006 - 14:32 #1
docs siger:

Abort Overloaded. Raises a ThreadAbortException in the thread on which it is invoked, to begin the process of terminating the thread. Calling this method usually terminates the thread.

saa alt er vel som det skal vaere !?!?
Avatar billede aaberg Nybegynder
03. februar 2006 - 20:11 #2
Det er dårlig programmering at stoppe en tråd ved at bruge Abort functionen. Istedet bør man sætte et aflslut-flag som tråden kan lytte på, så tråden kan gøre sig selv færdig, og dermed lukke. Dette giver mange færre problemer.
Avatar billede golyf Nybegynder
09. maj 2006 - 21:25 #3
Lukker. Nogle som vil ha' point?
Avatar billede arne_v Ekspert
09. maj 2006 - 21:45 #4
hvorfor ikke
Avatar billede aaberg Nybegynder
10. maj 2006 - 13:09 #5
tja.
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