Was ist der Unterschied zwischen der OnStop () - Methode und dem Stoppen des Ereignisses in der Windows Azure-Rolle?

8

Wenn eine Windows Azure-Rolle beendet wird, wird ihre OnStop() -Methode aufgerufen. Es stellt sich heraus, dass RoleEnvironment.Stopping event zuvor ausgelöst wurde OnStop() wird aufgerufen. MSDN gibt an, dass dieses Ereignis der richtige Ort für den Clean-Shutdown-Code für Rollen ist.

Was ist der Unterschied zwischen den beiden? Warum sollte ich den clean shutdown code in Stopping event und nicht in OnStop() method override setzen?

    
sharptooth 22.11.2011, 13:22
quelle

3 Antworten

4

Neben der Tatsache, dass der Event-Mechanismus eine flexible Möglichkeit bietet, Handler anzuhängen, während die OnStop -Methode direkt auf der von RoleEntryPoint abgeleiteten Klasse definiert werden muss, ist ein relevanter Unterschied:

%Vor%

So wird das stoppende Ereignis nicht ausgelöst, wenn die VM zum Aktualisieren des Gastbetriebssystems neu gestartet wird.

Ein weiterer Unterschied ist dies:

%Vor%

Obwohl in der Dokumentation nicht erwähnt wird, dass das Stopp-Ereignis eine solche Begrenzung hat.

Quelle:

Fernando Correia 06.12.2012 16:55
quelle
2

Ereignisse ermöglichen es anderen Abonnenten in anderen Klassen, eine Aktion auszuführen, während die Methode dem Unterklassenautor wie Ihnen erlaubt, sie in die tatsächliche Klasse zu platzieren und (zum Beispiel) zu modifizieren, welche Ereignisse ausgelöst werden.

    
Alex Norcliffe 22.11.2011 13:26
quelle
1

Brent Stineman (Windows Azure MVP) blogged über den RoleEntryPoint und die zugehörige start / run / stop-Sequenz und beschreibt sowohl Stop als auch OnStop in den Sequenzbeschreibungen.

    
David Makogon 22.11.2011 14:47
quelle