get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadId (Operator)
Name
get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadId — Return the HALCON thread ID of the current thread.
Signature
Herror get_current_hthread_id(Hlong* HThreadID)
Herror T_get_current_hthread_id(Htuple* HThreadID)
void GetCurrentHthreadId(HTuple* HThreadID)
static Hlong HSystem::GetCurrentHthreadId()
Description
get_current_hthread_idget_current_hthread_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadId returns a thread ID that represents the
currently running thread in HThreadIDHThreadIDHThreadIDHThreadIDHThreadID.
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_operatorInterruptOperatorInterruptOperatorInterruptOperator.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Parameters
HThreadIDHThreadIDHThreadIDHThreadIDHThreadID (output_control) integer → HTupleHTupleHtuple (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_idGetCurrentHthreadIdGetCurrentHthreadIdGetCurrentHthreadId
returns 2 (H_MSG_TRUE). Otherwise an exception is raised.
Possible Successors
interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator
See also
interrupt_operatorinterrupt_operatorInterruptOperatorInterruptOperatorInterruptOperator,
set_operator_timeoutset_operator_timeoutSetOperatorTimeoutSetOperatorTimeoutSetOperatorTimeout
Module
Foundation