ConfigureAwait(false) - Best Practice?

  • C#

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von jedijaeger.

    ConfigureAwait(false) - Best Practice?

    Halli hallo,

    eine Extension für VS 2017 (Roslynator 2017 :D), welche helfen soll Best Practices besser umzusetzen, schlägt mir bei allen Aufrufen mittels

    C#-Quellcode

    1. ​var returnValue = await service.GetWhateverAsync();


    die Verwendung von

    C#-Quellcode

    1. ​var returnValue = await service.GetWhateverAsync().ConfigureAwait(false);


    vor. Habe dazu mal recherchiert und herausgelesen, dass sich die Verwendung von ConfigureAwait nur beim Aufruf von externem Code (Andere Dll o.ä.) empfiehlt, da mit z.B. Exceptions anders umgegangen wird. Wie ist eure Meinung dazu? Würde diesen Vorschlag ansonsten einfach deaktivieren, da bei einer großen Codebase immer locker 60+ Informationen in der Fehlerliste erscheinen. Das führt dazu, dass andere hilfreichere Hinweise untergehen.

    Ergo meine Frage einmal formuliert: Wie steht ihr zur Verwendung von ConfigureAwait(false), speziell im konsequenten Sinne bei jedem await Aufruf? :whistling: ?(

    VG,
    Julian :thumbsup:
    Hmkay. :|
    .ConfigureAwait(false) bedeutet, dass der nach dem await nachfolgende Code nicht unbedingt auf dem aufrufenden Thread laufen muss. Das spart ein paar Milisekunden wenn richtig eingesetzt, kann aber auch zu Problemen führen, wenn nicht.
    Hier ein Link dazu:
    johnthiriet.com/configure-await/
    Post-AGB:
    §1 Mit dem Lesen dieses Posts stimmst du den AGB unverzüglich zu
    §2 Ein Widerruf muss innerhalb von 3 Sekunden nach Lesen des Hauptbestandteil des ersten jemals gelesenen Posts erfolgen
    Abs.1 Die Signatur zählt nicht zum Hauptbestandteil des Posts
    §3 Ein erfolgreicher Widerruf zwingt zu einem Besuch bei einem Hypnotiseur oder Neurochirurg, sodass der gelesene Text aus den Erinnerungen entfernt werden kann
    Abs.1 Die Kosten und Risiken sind jeweils selbst zu tragen