createLowLevelThread

fnThreadID createLowLevelThread(void delegate() nothrow dg, uint stacksize = 0, void delegate() nothrow cbDllUnload = null) nothrow @nogc

Create a thread not under control of the runtime, i.e. TLS module constructors are not run and the GC does not suspend it during a collection.

Parameters

dgdelegate to execute in the created thread.
stacksizesize of the stack of the created thread. The default of 0 will select the platform-specific default size.
cbDllUnloadWindows only: if running in a dynamically loaded DLL, this delegate will be called if the DLL is supposed to be unloaded, but the thread is still running. The thread must be terminated via joinLowLevelThread by the callback.

Returns

the platform specific thread ID of the new thread. If an error occurs, ThreadID.init

is returned.