Der Weg zur Erreichung ähnlicher Ziel in asp.net Kern ist die Verwendung IApplicationLifetime Schnittstelle. Es verfügt über zwei Eigenschaften zwei CancellationToken
s,
ApplicationStopping
:
Gastgeber ein ordnungsgemäßes Herunterfahren durchführt. Anfragen können immer noch Verarbeitung sein. Shutdown Blöcke bis dieses Ereignis abgeschlossen ist.
Und ApplicationStopped
:
Gastgeber ein ordnungsgemäßes Herunterfahren abgeschlossen wird. Alle Anfragen sollten vollständig verarbeitet werden. Shutdown Blöcke bis dieses Ereignis abgeschlossen ist.
Diese Schnittstelle ist standardmäßig im Container registriert, sodass Sie sie einfach dorthin injizieren können, wo Sie sie benötigen. Wo man früher RegisterObject
genannt, rufen Sie stattdessen
// or ApplicationStopped
var token = lifeTime.ApplicationStopping.Register(OnApplicationStopping);
private void OnApplicationStopping() {
// will be executed on host shutting down
}
Und Ihr OnApplicationStopping
Rückruf wird von der Laufzeit auf dem Host-Shutdown aufgerufen werden. Wo Sie vorher UnregisterObject
nennen würde, verfügen Sie nur Token zurück von CancellationToken.Register
:
token.Dispose();
Sie können auch diese Stornierung Token-Operationen übergeben, die Löschung Token und welche erwarten sollten nicht versehentlich durch Abschaltung unterbrochen werden.
ok lass mich das überprüfen –