Результатом асинхронной задачи является блокировка

У меня проблема с блокировкой задачи, когда я пытаюсь получить ее результат.

У меня есть следующий фрагмент кода, который я хочу выполнить синхронно (вот почему я ищу результат)

Я бы проигнорировал причину, по которой должен выполняться каждый вызов (устаревшее программное обеспечение, которое требует нескольких вызовов через разные уровни)

кажется, что вызов прерывается после того, как он запускает задачу для последнего вызова, который будет сделан в PostCreateProfile, я вижу, что этот запрос никогда не делает его дальше, чем этот.

if (CreateProfile(demographics).Result) // Task blocks here
{
    //dothing
}

private async Task<bool> CreateProfile(Demographics demographics)
{
    ProfileService profileService = new ProfileService();

    CreateProfileBindingModel createProfileBindingModel = this.CreateProfileModel(demographics);

    return await profileService.Create(createProfileBindingModel);
}

public async Task<bool> Create(CreateProfileBindingModel model)
{
    HttpResponseMessage response = await profileServiceRequest.PostCreateProfile(rootURL, model);

    return response.IsSuccessStatusCode;
}

public Task<HttpResponseMessage> PostCreateProfile(string url, CreateProfileBindingModel model)
{
    HttpContent contents = SerialiseModelData(model);
    var resultTask = client.PostAsync(url, contents);

    return resultTask;
}

Запрос достигнет своего места назначения, если бы я изменил CreateProfile на асинхронный void следующим образом:

private async void CreateProfile(AppointmentController controller)
{
    ProfileService profileService = new ProfileService();

    CreateProfileBindingModel createProfileBindingModel = this.CreateProfileModel(controller);

    await profileService.Create(createProfileBindingModel);
}

Но я не могу вернуть бул, который я хочу использовать из этого. Кто-нибудь может указать, что я делаю не так?

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

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