Winforms вызов асинхронного метода зависает программа

Я работал над этой проблемой некоторое время, но теперь я действительно хотел бы понять, что идет не так. У меня довольно простое приложение (это плагин Turtoise SVN для youtrack, но я могу воспроизвести проблему с помощью тривиального приложения winforms).

У меня есть асинхронный методResolveIssue

public async Task<bool> ResolveIssue(Issue issue, int revision, string[] pathList)
{
    await Task.Delay(1000);

    return true;
}

Все, что мне нужно сделать, чтобы создать тупик, это вызвать этот асинхронный метод вButton обработчик события и вызовTask.Wait или жеTask.Result, как это

private void buttonOk_Click(object sender, System.EventArgs e)
{
    var asyncResolvedIssue = api.ResolveIssue(issue, revision, pathList);
    if (asyncResolvedIssue.Result) {} // <== deadlock!
}

Теперь я понимаю, что довольно странно иметь асинхронный метод и активно его ждать, но с какой стати это может привести к тупику ?!

Ответы на вопрос(1)

Ваш ответ на вопрос