Причина, по которой базовые потоковые примитивы Win32 не открыты, заключается в том, что управляемый код не полагается на них.Команда CLR всегда работает над способами оптимизации использования потоков, и это не включает никаких гарантий относительно управляемого 1: 1: неуправляемое отображение потоков (см., Например, «Примечание» на этой странице MSDN ).Если вы действительно хотите сделать это в любом случае, вам нужно настроить оболочки P / Invoke, которые используют неуправляемый дескриптор потока из Win32 GetCurrentThread (), или подключиться к процессу отображения потока самостоятельно с помощью собственного хоста.Я бы не советовал, если только вам абсолютно не нужно взаимодействовать с чем-то, что использует коды выхода потоков и не управляется с учетом кода.Придумайте другой способ контрабанды информации о состоянии, если вы можете сделать все это управляемым (или использовать Task Parallel Library , чтобы абстрагировать уровень от пустых потоков).