Я читаю и изучаю ThreadScheduler
и статьи вокруг Tasks и сталкиваюсь с функцией ThreadPool.UnsafeQueueUserWorkItem
используемой в одном из примеров MSDN о собственных ThreadSchedulers. В описании MSDN об UnsafeQueueUserWorkItem есть большое предупреждение о том, что функция может быть дырой в безопасности и что она "не распространяется на вызывающий стек".
Единственная ссылка - QueueUserWorkItem
которая - от имени - кажется, является "безопасным партнером"? но не упоминает ничего о вызовах стеков.
Что это значит для распространения стека? Скопировать его до начала работы? Почему в любом случае потребуется еще один поток стопки вызывающего потока? Я бы предположил, что они начинаются со свежего и пустого стека. В конце концов, когда функция потока возвращается, она не продолжает выполнять функцию, планирующую задачу, правильно?