killthread reisst alles mit

Anfängerfragen zum Programmieren mit PureBasic.
Zotti
Beiträge: 17
Registriert: 19.02.2005 01:27
Wohnort: Ettenbeuren

killthread reisst alles mit

Beitrag von Zotti »

Hallo Leute,

ich habe im board leider nichts gefunden was mein Problem behandelt,
darum denke ich, dass es wohl ein Denkfehler sein muss.

Code: Alles auswählen

threat.l = CreateThread(@progres(), 0)
TextGadget(2,30,90,230,25, " downloading file ", #PB_Text_Center )
;DeleteURLCacheEntry_(download$)
If URLDownloadToFile_(0,download$,verzeichnis$+datei$,0,0) = #S_OK
  KillThread(thread.l)
Der KillThread reisst mir alles weg.
Ich möchte aber doch nur die Prozedur stoppen. Ich kann es nicht in einer Schleife oder einem FileCheck machen, da ich nicht weiss wie groß das File ist.

By Olli
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Schreiben will gelernt sein , Lesen übrigens auch .. Wenn Du
oben threat schreibst und unten thread dann wunder Dich
auch nicht über scheinbar komisches Verhalten :)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Zotti
Beiträge: 17
Registriert: 19.02.2005 01:27
Wohnort: Ettenbeuren

Beitrag von Zotti »

Oh mann,

wegen so etwas verbrate ich den vormittag!
Ich habe es nicht gesehen.
Danke für die schnelle Antwort.

By Olli
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Zotti hat geschrieben:wegen so etwas verbrate ich den vormittag!
'EnableExplicit' hilft, den Vormittag sinnvoller zu nutzen ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> KillThread(thread.l)
Hier kannst du .l weglassen, dies wird nur bei der Deklaration zwingend benötigt.

> threat
Willst du uns bedrohen? :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

PB Help zu KillThread() hat geschrieben:Dies ist eine sehr gefährliche Operation und sollte nur selten benutzt werden. Das Problem ist, dass der Thread umgehend entfernt wird und keine Chance hat, irgendwelchen "Aufräumcode" (z.B. Speicher freigeben, Einträge freigeben, De-Allokieren seines eigenen Stacks) auszuführen.

Wenn möglich, sollte ein Flag (z.B. eine globale Variable) verwendet werden, welcher dem Thread mitteilt, sich selbst zu beenden (und das benötigte "Aufräumen" zu erledigen). Und dieser Befehl sollte nur verwendet werden, wenn dies auf irgendwelchen Gründen nicht möglich ist.
Und ich sage dir, es ist wahr!
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

eine frage:
in einem meiner codes benutze ich so einen thread:

Code: Alles auswählen

Procedure thread_beep()
  Beep_( beep_thread_freq, beep_thread_dura )
EndProcedure
..damit ich wärend des beeps weitermachen kann. wenn ich den beep aber vorzeitig nicht mehr haben will, benutze ich killthread(). es geht ja auch nicht anders, oder? können da rückstände (zwischen den zähnen 8) ) hängenbleiben, oder ist das in dem fall kein probem?
(oder gibt es eine api-funktion zum killen aller aktuellen beep-jobs?)
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Zum einen fehlt da mal der obligatorische Parameter der Thread-Funktion
und zum anderen kann dir wohl nur Microsoft sagen, was in der Funktion
Beep_() vor sich geht und ob ein KillThread() schädlich sein kann.

Einen Beep_() abzubrechen macht wohl höchstens Sinn bei einem "Lied"
per Beep_()... aber das kann ja auch nicht ernst gemeint sein, denn da
gibt es bessere Methoden.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wenn ein Beep_() länger als 2 ½ Sekunden dauert, dann lohnt es sich erst, ihn abzubrechen, wenn es sein muss.

Aber wenn ein Beep_() länger als 2 ½ Sekunden dauert, dann ist der Beep_() an sich einfach nur nervtötend und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere... >:)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere... >:)
*SCHENKELKLATSCH*

ROFEL!

you made my day, dude :mrgreen:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten