Кажется, я заметил серьезную ошибку в TPL. Я не уверена. Я провел много времени, царапая голову и не могу понять поведение. Кто-нибудь может помочь?
Мой сценарий:
Вот мой код. Ценим любую помощь!
// note: using new Task() and then Start() to avoid race condition dangerous
// with TaskContinuationOptions.ExecuteSynchronously flag set on continuation.
var task = new Task(() => { /* just return */ });
task.ContinueWith(
_task => { while (true) { } /* never return */ },
TaskContinuationOptions.ExecuteSynchronously);
task.Start(TaskScheduler.Default);
task.Wait(); // a thread hangs here forever even when EnterEndlessLoop is already called.