Довольно хорошо документировано, что при запуске сборщика мусора .NET он временно приостанавливает все запущенные управляемые потоки, связанные с доменом приложения. То, что мне не удалось обнаружить, - это подробности о том, что происходит с собственными потоками, создаваемыми приложением при сборе мусора (например, используя _beginthreadex() вместо System.Threading.Thread()). Они так же приостановлены или работают слева?
Сборник мусора .NET и собственные потоки
Ответ 1
Помогает ли эта помощь?
"GC не остановит потоки, которые не являются управляемый код. Поскольку эти нити не могут касаться GC куча в любом случае, нет необходимости в GC для координации с ними".
"Если поток был в управляемом коде, но вызывается из собственного кода, он будет продолжать работать. Он будет остановлен, если он возвращается к управляемому коду".