The right way to do this (without the risk of blocking) is to use Task.WhenAll
private async void SayHelloTwice()
{
string[] results = await Task.WhenAll(
PrintTask(),
PrintTask());
Console.WriteLine(results[0]);
Console.WriteLine(results[1]);
}
" " , . , .
, Task.Result Task.WaitAll, ( ) Task.
, , Task , .
, "Task" Outter Thread .
"" .
.