In .net 3,5
попытка ThreadPool.QueueUserWorkItem(a=> {Work()});
, когда ThreadPool не имеет доступных потоков, вызвало блокировку BeginInvoke.
void Work()
{
Action executor = () = { DoSomething(); };
IAsyncResult result = executor.BeginInvoke(null, null);
using (WaitHandle hWait = result.AsyncWaitHandle)
{
if (hWait.WaitOne(timeoutMilliseconds))
{
executor.EndInvoke(result);
}
else
{ throw new ImDyingException(); }
}
}
Как я могу заставить BeginInvoke использовать поток без пула?