get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdget_current_hthread_id (Operator)

Name

get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdget_current_hthread_id — Return the HALCON thread ID of the current thread.

Signature

get_current_hthread_id( : : : HThreadID)

Herror get_current_hthread_id(Hlong* HThreadID)

Herror T_get_current_hthread_id(Htuple* HThreadID)

void GetCurrentHthreadId(HTuple* HThreadID)

static Hlong HSystem::GetCurrentHthreadId()

static void HOperatorSet.GetCurrentHthreadId(out HTuple HThreadID)

static int HSystem.GetCurrentHthreadId()

def get_current_hthread_id() -> int

Description

get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadIdget_current_hthread_id returns a thread ID that represents the currently running thread in HThreadIDHThreadIDHThreadIDHThreadIDHThreadIDhthread_id. This ID is identical to the windows thread ID or the POSIX thread ID on UNIX platforms and is also returned by the par_start operation of the HDevEngine. It can later be used to interrupt operators that are executed in this thread using interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperatorinterrupt_operator.

Execution Information

Parameters

HThreadIDHThreadIDHThreadIDHThreadIDHThreadIDhthread_id (output_control)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

ID representing the current thread.

Example (HDevelop)

global tuple HThreadID
get_current_hthread_id (HThreadID)
* call some slow operator...

* In a different thread
wait_seconds(2)
* Interrupt the long-running operator in the other thread
interrupt_operator (HThreadID, 'break')

Result

If the current thread can be determined, get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadIdget_current_hthread_id returns 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Successors

interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperatorinterrupt_operator

See also

interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperatorinterrupt_operator, set_operator_timeoutset_operator_timeoutSetOperatorTimeoutSetOperatorTimeoutSetOperatorTimeoutset_operator_timeout

Module

Foundation