Я пытаюсь подтвердить, является ли нормальным следующее наблюдаемое поведение в окне отладчика Parallel Stacks (Visual Studio 2017 15.8.5).
Если какой-либо из блоков, Parallel Stack-1 или Parallel Stack-2 , запускается изолированно во время отдельных прогонов, то вывод параллельных стеков выглядит нормально. Однако, если они выполняются вместе последовательно во время одного и того же сеанса отладки, выходные данные для операторов Parallel Stack-2 не выводятся.
Ниже приведены скриншоты следов стека в каждой из точек останова.
namespace TaskYield
{
class Program
{
static async Task TaskYield()
{
await Task.Yield();
} /*BREAKPOINT-2*/
static async Task TaskDelay()
{
await Task.Delay(3000);
}
static void Main(string[] args)
{
// Parallel Stack-1
var ty = TaskYield();
ty.Wait(); /*BREAKPOINT-1*/
// Parallel Stack-2
var td = TaskDelay();
td.Wait();
} /*BREAKPOINT-3*/
}
}
Параллельный стек-1
BreakPoint-1
BreakPoint-2
Параллельный стек-2
BreakPoint-3