PureBasic

KillThread()

Синтаксис

KillThread(Thread)

Описание


Немедленно уничтожает указанный Поток, ранее созданный с помощью функции CreateThread(). Эта функция очень опасна и должна использоваться как можно реже. Проблема в том, что поток немедленно уничтожается и не получает шанса выполнить какой-либо код завершения (например освободить память, удалить элементы, освободить собственный стек).

По возможности следует использовать флаг в виде глобальной переменной чтобы сказать потоку заканчивать выполнение (при этом производятся нужные завершающие действия), и только если это невозможно по какой-то причине следует использовать эту функцию.

Параметры

Thread Номер, идентифицирующий Поток, который требуется уничтожить. Этот Номер является результатом функции CreateThread(), полученным при создании данного Потока.

Возвращаемое значение

Ничего.

Пример

; Процедура/поток который никогда не завершается. Это нехорошо, но зато
; показывает как работает KillThread
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

Поддерживаемые OS

Все

<- IsThread() - Оглавление Thread - LockMutex()->