Синхронное свойство Result в C#
Свойство Result ждёт задачу на текущем потоке и отдаёт результат. В окне программы так легко получить взаимную блокировку: поток ждёт задачу, а её продолжение ждёт этот же поток.
В консольной программе поток занять можно. В библиотеке и в интерфейсе вместо Result оставляют await.
В примере задача уже завершена, поэтому значение возвращается сразу. На незавершённой задаче вызов будет ждать до конца:
Task<int> ready = Task.FromResult(8);
Console.WriteLine(ready.Result); // выведет 8
Возьмите уже готовую задачу с текстом "ready" и выведите её значение синхронно.