Ich habe den Rat viele Male von Leuten gelesen, die klüger sind als ich, und es hat wenige Vorbehalte: Verwenden Sie immer ConfigureAwait(false)
innerhalb der Bibliothek Code. Ich bin mir ziemlich sicher, dass ich die Antwort kenne, aber ich möchte 100% sein. Das Szenario ist Ich habe eine Bibliothek, die einige andere asynchrone Bibliothek dünn umschließt.Kann ConfigureAwait (false) in einer Bibliothek den Synchronisierungskontext für die aufrufende Anwendung verlieren?
Bibliothek Code:
public async Task DoThingAsyc() {
// do some setup
return await otherLib.DoThingAsync().ConfigureAwait(false);
}
Anwendungscode:
// need to preserve my synchronization context
await myLib.DoThingAync();
// do I have my context here or did my lib lose it?
'ConfigureAwait' kehrt nicht ein' Task' , aber ein 'ConfiguredTaskAwaitable'. 'DoThingAsync' kann nicht so aussehen wie im Beispiel. – i3arnon
@ i3arnon also ich denke, das hätte nicht einmal gebaut. Besser jetzt? (Kein Compiler auf mir atm) –
Ja, das würde kompilieren und die 'ConfigureAwait' würde den Anrufer nicht beeinflussen. – i3arnon