KillThread()

Syntax

KillThread(Thread)
Beschreibung
Entfernt umgehend den angegebenen Thread, der zuvor mit CreateThread() erstellt wurde. 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.

Parameter

Thread Der zu entfernende Thread. Dieser Wert wird von CreateThread() zurückgegeben.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Beispiel

  ; Ein(e) Prozedur/Thread, welche nie enden wird. Nicht gut, aber es zeigt
  ; wie KillThread arbeitet
  Procedure PrintStuff(*Interval)
    Repeat
      PrintN(".")
      Delay(*Interval)
    ForEver
  EndProcedure

  If OpenConsole()
    thread = CreateThread(@PrintStuff(), 500)
    If thread
      For i = 0 To 10
        PrintN("A")
        Delay(999)

        If i = 5
          KillThread(thread)
        EndIf
      Next
    EndIf
  EndIf

Unterstützte OS

Alle

<- IsThread() - Thread Inhaltsverzeichnis - LockMutex() ->