impasse mesmo depois de usar o ConfigureAwait (false) no fluxo do asp.net

Estou atingindo um impasse mesmo depois de usarConfigureAwait(false), abaixo está o código de exemplo.

Conforme a amostrahttp://blog.stephencleary.com/2012/02/async-and-await.html (#Avoding Context), isso não deve ter atingido o bloqueio.

Esta é a minha aula:

public class ProjectsRetriever
{
    public string GetProjects()
    {
        ...
        var projects = this.GetProjects(uri).Result;
        ...
        ...
    }

    private async Task<IEnumerable<Project>> GetProjects(Uri uri)
    {
        return await this.projectSystem.GetProjects(uri, Constants.UserName).ConfigureAwait(false);
    }
}

Esta classe é de uma biblioteca compartilhada:

public class ProjectSystem
{
    public async Task<IEnumerable<Project>> GetProjects(Uri uri, string userName)
    {
        var projectClient = this.GetHttpClient<ProjectHttpClient>(uri);
        var projects = await projectClient.GetProjects();
        // code here is never hit
        ...
}

Funciona se eu adicionar o ConfigureAwait (false) para aguardar a chamada na biblioteca compartilhada, onde é feita a chamada HttpClient:

public class ProjectSystem
{
    public async Task<IEnumerable<Project>> GetProjects(Uri uri, string userName)
    {
        var projectClient = this.GetHttpClient<ProjectHttpClient>(uri);
        var projects = await projectClient.GetProjects().ConfigureAwait(false);
        // no deadlock, resumes in a new thread.
        ...
}

Eu tenho vasculhado todos os blogs encontrados, a única diferença que acho é que o ConfigureAwait (false) funciona quando usado com a chamada httpClient.AsyncApi () !?

Por favor, ajude a esclarecer !!!

questionAnswers(3)

yourAnswerToTheQuestion