Condividi tramite


WorkflowRuntimeService.Stop Metodo

Definizione

Quando viene sottoposto a override in una classe derivata, arresta il servizio e modifica la classe State in Stopping.

protected public:
 virtual void Stop();
protected internal virtual void Stop ();
abstract member Stop : unit -> unit
override this.Stop : unit -> unit
Protected Friend Overridable Sub Stop ()

Eccezioni

Runtime è un riferimento null (Nothing in Visual Basic).

-oppure-

Il servizio non è ancora stato avviato.

Commenti

Stop viene richiamato dal motore di runtime del flusso di lavoro su tutti i servizi derivati dalla classe WorkflowRuntimeService quando StopRuntime viene chiamato. Anche Stop viene richiamato dal motore di runtime del flusso di lavoro quando un servizio del motore di runtime del flusso di lavoro viene rimosso mediante una chiamata a RemoveService. L'implementazione predefinita di Stop rileva se il servizio è stato avviato e utilizza queste informazioni per generare l'eccezione adatta se il servizio viene arrestato prima di essere avviato.

Per fare in modo che il servizio venga arrestato dal motore di runtime del flusso di lavoro, è possibile fornire le funzionalità aggiuntive eseguendo l'override di questo metodo. Non è possibile garantire quale servizio, se disponibile, venga arrestato o eseguito quando Stop viene chiamato sul servizio. Il motore di runtime del flusso di lavoro genera l'evento WorkflowRuntime.Stopped dopo aver chiamato il metodo Stop di tutti i relativi servizi. Per supportare altri servizi fino a quando il motore di runtime del flusso di lavoro avrà richiamato i metodi Stop di tutti i servizi del motore di runtime del flusso di lavoro, è possibile che il servizio debba mantenere alcune funzionalità residue. Se il servizio deve mantenere tali funzionalità, è possibile eseguire l'override del metodo OnStopped per eseguire l'azione aggiuntiva richiesta per completare l'arresto del servizio quando viene generato l'evento WorkflowRuntime.Stopped.

Nota

Se WorkflowRuntimeService viene rimosso dal motore di runtime del flusso di lavoro mediante una chiamata a RemoveService mentre il motore di runtime del flusso di lavoro è in esecuzione, quest'ultimo chiamerà il metodo Stop sul servizio. In questa situazione, il metodo OnStopped non verrà tuttavia chiamato per il servizio. Di conseguenza, è possibile che il servizio debba eseguire qualsiasi funzionalità di chiusura aggiuntiva che normalmente eseguirebbe in OnStopped dal metodo Stop. È possibile testare IsStarted per determinare se il motore di runtime del flusso di lavoro è in esecuzione.

Stop deve essere chiamato solo dal motore di runtime del flusso di lavoro.

Si applica a