UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRunnableThreadWin Class Reference

#include <MicrosoftRunnableThread.h>

+ Inheritance diagram for FRunnableThreadWin:

Public Member Functions

 ~FRunnableThreadWin ()
 
virtual void SetThreadPriority (EThreadPriority NewPriority) override
 
virtual void Suspend (bool bShouldPause=true) override
 
virtual bool Kill (bool bShouldWait) override
 
virtual void WaitForCompletion () override
 
virtual bool SetThreadAffinity (const FThreadAffinity &Affinity) override
 
- Public Member Functions inherited from FRunnableThread
virtual FRunnableThread::ThreadType GetThreadType () const
 
const uint32 GetThreadID () const
 
const FString & GetThreadName () const
 
EThreadPriority GetThreadPriority () const
 
CORE_API FRunnableThread ()
 
virtual CORE_API ~FRunnableThread ()
 

Static Public Member Functions

static int TranslateThreadPriority (EThreadPriority Priority)
 
- Static Public Member Functions inherited from FRunnableThread
static CORE_API uint32 GetTlsSlot ()
 
static CORE_API FRunnableThreadCreate (class FRunnable *InRunnable, const TCHAR *ThreadName, uint32 InStackSize=0, EThreadPriority InThreadPri=TPri_Normal, uint64 InThreadAffinityMask=FPlatformAffinity::GetNoAffinityMask(), EThreadCreateFlags InCreateFlags=EThreadCreateFlags::None)
 
static FRunnableThreadGetRunnableThread ()
 

Protected Member Functions

virtual bool CreateInternal (FRunnable *InRunnable, const TCHAR *InThreadName, uint32 InStackSize=0, EThreadPriority InThreadPri=TPri_Normal, uint64 InThreadAffinityMask=0, EThreadCreateFlags InCreateFlags=EThreadCreateFlags::None) override
 
- Protected Member Functions inherited from FRunnableThread
CORE_API void SetTls ()
 
CORE_API void FreeTls ()
 

Additional Inherited Members

- Public Types inherited from FRunnableThread
enum class  ThreadType { Real , Fake , Forkable }
 
- Protected Attributes inherited from FRunnableThread
FString ThreadName
 
FRunnableRunnable
 
FEventThreadInitSyncEvent
 
uint64 ThreadAffinityMask
 
EThreadPriority ThreadPriority
 
uint32 ThreadID
 

Detailed Description

This is the base interface for all runnable thread classes. It specifies the methods used in managing its life cycle.

Constructor & Destructor Documentation

◆ ~FRunnableThreadWin()

FRunnableThreadWin::~FRunnableThreadWin ( )
inline

Member Function Documentation

◆ CreateInternal()

virtual bool FRunnableThreadWin::CreateInternal ( FRunnable InRunnable,
const TCHAR InThreadName,
uint32  InStackSize = 0,
EThreadPriority  InThreadPri = TPri_Normal,
uint64  InThreadAffinityMask = 0,
EThreadCreateFlags  InCreateFlags = EThreadCreateFlags::None 
)
inlineoverrideprotectedvirtual

Creates the thread with the specified stack size and thread priority.

Parameters
InRunnableThe runnable object to execute
ThreadNameName of the thread
InStackSizeThe size of the stack to create. 0 means use the current thread's stack size
InThreadPriTells the thread whether it needs to adjust its priority or not. Defaults to normal priority
Returns
True if the thread and all of its initialization was successful, false otherwise

Implements FRunnableThread.

◆ Kill()

virtual bool FRunnableThreadWin::Kill ( bool  bShouldWait)
inlineoverridevirtual

Tells the thread to exit. If the caller needs to know when the thread has exited, it should use the bShouldWait value. It's highly recommended not to kill the thread without waiting for it. Having a thread forcibly destroyed can cause leaks and deadlocks.

The kill method is calling Stop() on the runnable to kill the thread gracefully.

Parameters
bShouldWaitIf true, the call will wait infinitely for the thread to exit.
Returns
Always true

Implements FRunnableThread.

◆ SetThreadAffinity()

bool FRunnableThreadWin::SetThreadAffinity ( const FThreadAffinity Affinity)
overridevirtual

Changes the thread affinity of the currently running thread

Parameters
ThreadAffinityMaskThe thread affinity to change to (can be 0 to keep previously set affinity mask)
ProcessorGroupThe thread group to change to
Returns
returns true if the affinity changed, false if affinity did not change

Reimplemented from FRunnableThread.

◆ SetThreadPriority()

virtual void FRunnableThreadWin::SetThreadPriority ( EThreadPriority  NewPriority)
inlineoverridevirtual

Changes the thread priority of the currently running thread

Parameters
NewPriorityThe thread priority to change to

Implements FRunnableThread.

◆ Suspend()

virtual void FRunnableThreadWin::Suspend ( bool  bShouldPause = true)
inlineoverridevirtual

Tells the thread to either pause execution or resume depending on the passed in value.

Parameters
bShouldPauseWhether to pause the thread (true) or resume (false)

Implements FRunnableThread.

◆ TranslateThreadPriority()

int FRunnableThreadWin::TranslateThreadPriority ( EThreadPriority  Priority)
static

◆ WaitForCompletion()

virtual void FRunnableThreadWin::WaitForCompletion ( )
inlineoverridevirtual

Halts the caller until this thread is has completed its work.

Implements FRunnableThread.


The documentation for this class was generated from the following files: