Afslutning af Thread

Tags:    delphi

Hej

Jeg har lavet en thread, som sender div. output til COM-porten. Dette gøres med forskellige intervaller, til hvilket jeg bruger funktionen sleep. Nu er mit spm. hvordan får jeg afsluttet tråden ude fra. DVS inden den er færdig..f.eks midt i en sleep periode.

T dér



5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hej

Jeg har lavet en thread, som sender div. output til COM-porten. Dette gøres med forskellige intervaller, til hvilket jeg bruger funktionen sleep. Nu er mit spm. hvordan får jeg afsluttet tråden ude fra. DVS inden den er færdig..f.eks midt i en sleep periode.
T dér


Den slags gør man vist normalt ikke, i stedet vil jeg foreslå at du sætter en sleep på måske 300ms. Men hvis du vil så læs om TerminateThread i Win32 PR.

/HK





Den slags gør man vist normalt ikke, i stedet vil jeg foreslå at du sætter en sleep på måske 300ms. Men hvis du vil så læs om TerminateThread i Win32 PR.

/HK

Den vil stadigvæk først lukke ned efter sleep kommandoen er udført. En thread bliver afskåret fra CPU tid under en sleep kommando...

Nu kender jeg ikke dit program i detajler, men der må være en bedre måde at gøre det på. Hvorfor er du nød til at bruge sleep ?




Den vil stadigvæk først lukke ned efter sleep kommandoen er udført. En thread bliver afskåret fra CPU tid under en sleep kommando...


Er du sikker på det? Har lige testet med en tråd og den blev tilsyneladende lukket øjeblikkelig efter et kald til TerminateThread.
Bruger Windows XP

/HK




Er du sikker på det? Har lige testet med en tråd og den blev tilsyneladende lukket øjeblikkelig efter et kald til TerminateThread.
Bruger Windows XP

/HK

Det er ihvertfald det jeg har stået i et par delphi bøger, men på den anden siden, hvis du fra en extern thread fortæller OS'et at den skal lukke en thread så virker det muligt at det externe kald kan være helt og aldeles ligeglad med sleep kommandoen



Er du sikker på det? Har lige testet med en tråd og den blev tilsyneladende lukket øjeblikkelig efter et kald til TerminateThread.
Bruger Windows XP


Nu har jeg lige prøvet at bruge TerminateThread. Jeg får bare en EAccesViolation...?
T dér

[Redigeret d. 27/03-05 11:46:55 af Tarrild]



t