Ich habe einige Hub-Methoden, die E/A-Operationen ausführen, die ich asynchron aufrufen möchte.Kann ich ConfigureAwait (false) in SignalR-Hubs verwenden, oder stützt sich die SignalR-Infrastruktur auf SynchronizationContext?
Ist es sicher, ConfigureAwait(false)
in meinen Hub-Methoden zu verwenden, oder benötigt SignalR einen erfassten SynchronizationContext für Anforderungsinformationen oder etwas ähnliches?
public async Task<Response> Save() {
// do some prep work
var response = await SaveThingsAsync().ConfigureAwait(false);
// do something with response
return response;
}
Zur Klarstellung: mein Code Thread Kultur oder irgendetwas anderes in der SynchronizationContext nicht gespeichert erfordern.
Meine Sorge ist, dass der SignalR-Server-Code dort Informationen speichern kann, wie Client-IDs, Anfrage-Infos oder ähnliches, auf die er möglicherweise nicht zugreifen kann, wenn die Async-Methode von einem anderen Thread fortgesetzt wird.
Als ich meine Methode testete, schien es gut zu funktionieren, aber das beweist nichts unbedingt.
Diese Antwort wird akzeptiert, da sie SignalR spezifisch adressiert. – enzi