Help Center
Help CenterFreeBASIC

ThreadWaitsub

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

Syntax

Declare Sub ThreadWait ( ByVal id As Any Ptr )

Parameters

NameDescription
idAny 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.

Remarks

Usage


ThreadWait( id )

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


Example


See the ThreadCreate examples.

Reference

  • Documented in KeyPgThreadWait.html