SetThreadAffinityMask() alters the Win32 thread affinity mask. The same Win32 thread may be used for multiple different System.Threading.Thread instances (I believe not concurrently, but the underlying Win32 thread will be reused for performance reasons once an existing System.Threading.ThreadStart delegate exits).