ThreadWait
 
Waits for a thread to finish execution and releases the thread handle

Syntax

Declare Sub ThreadWait ( ByVal id As Any Ptr )

Usage

ThreadWait( id )

Parameters

id
Any Ptr handle of a thread created by ThreadCreate or ThreadCall

Description

ThreadWait waits for a thread created by ThreadCreate or ThreadCall to finish execution, and then releases the resources associated with the thread handle. ThreadWait does not return until the thread designated by id ends.
During the wait, no CPU time is consumed by the caller.

In order to release a thread handle without waiting for the thread to finish, use ThreadDetach.

ThreadWait does not force the thread to end; if a thread requires a signal to force its end, a mechanism such as shared variables and mutexes must be used.

In order to avoid memory leaks, the safe way to end a thread is to always signal to it that it must end, and then call ThreadWait on that thread except if ThreadDetach has previously been called.

The intrinsic macro __FB_MT__ is only automatically set from the point of usage of ThreadWait onward.

Example

See the ThreadCreate examples.

Dialect Differences

  • Threading is not allowed in the -lang qb dialect.

Platform Differences

  • ThreadWait is not available with the DOS version of FreeBASIC, because multithreading is not supported by DOS kernel nor the used extender.

Differences from QB

  • New to FreeBASIC

See also