Определенно использует пул потоков.
Я ошеломлен, если смогу найти то, что задокументировано в любом случае. ...
Вот код для его подтверждения, но, конечно, это не подтверждает, что гарантировано произойдет таким образом ...
using System;
using System.Threading;
public class Test
{
static void Main()
{
Action x = () =>
Console.WriteLine(Thread.CurrentThread.IsThreadPoolThread);
x(); // Synchronous; prints False
x.BeginInvoke(null, null); // On the thread-pool thread; prints True
Thread.Sleep(500); // Let the previous call finish
}
}
РЕДАКТИРОВАТЬ: Как указано Джеффом ниже, эта статья MSDN подтверждает это:
Если вызывается метод BeginInvoke,
общеязыковая среда выполнения (CLR)
ставит в очередь запрос и возвращает
немедленно звонящему. Цель
метод вызывается асинхронно на
поток из пула потоков.