deadlock auch nach Verwendung von ConfigureAwait (false) in Asp.Net flow

Ich treffe Deadlock auch nach der Verwendung vonConfigureAwait(false), unten ist der Beispielcode.

Wie in der Probehttp: //blog.stephencleary.com/2012/02/async-and-await.htm (#Avoding Context), dies sollte nicht Deadlock getroffen haben.

Dies ist meine Klasse:

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);
    }
}

Diese Klasse stammt aus einer gemeinsam genutzten Bibliothek:

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
        ...
}

Works, wenn ich ConfigureAwait (false) hinzufüge, um auf den Aufruf in der gemeinsam genutzten Bibliothek zu warten, in der der HttpClient-Aufruf erfolgt:

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.
        ...
}

Ich habe alle gefundenen Blogs durchgesehen. Der einzige Unterschied ist, dass ConfigureAwait (false) mit httpClient.AsyncApi () funktionier

Bitte helfen Sie zu klären !!!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage