Es wird empfohlen, ConfigureAwait für den gesamten serverseitigen Code aufzurufen

Wenn Sie serverseitigen Code haben (d. H. EinigeApiController) und Ihre Funktionen sind asynchron - also kehren sie zurückTask<SomeObject> - Wird es als bewährte Methode angesehen, jedes Mal auf von Ihnen aufgerufene Funktionen zu warten?ConfigureAwait(false)?

Ich hatte gelesen, dass es performanter ist, da es nicht zum ursprünglichen Thread-Kontext zurückkehren muss. Mit ASP.NET Web Api müssen Sie jedoch auf eine Funktion und einen Aufruf warten, wenn Ihre Anforderung in einem Thread eingehtConfigureAwait(false) Das könnte Sie möglicherweise in einen anderen Thread verwickeln, wenn Sie das endgültige Ergebnis Ihres Tests zurücksendenApiController Funktion.

Ich habe ein Beispiel für das, worüber ich rede, geschrieben:

public class CustomerController : ApiController
{
    public async Task<Customer> Get(int id)
    {
        // you are on a particular thread here
        var customer = await SomeAsyncFunctionThatGetsCustomer(id).ConfigureAwait(false);

        // now you are on a different thread!  will that cause problems?
        return customer;
    }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage