Condividi tramite


WorkflowRuntimeService.Start Metodo

Definizione

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

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

Eccezioni

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

-oppure-

Il servizio è già stato avviato.

Esempio

Nell'esempio seguente viene illustrata la chiamata del metodo Start su un oggetto derivato da WorkflowRuntimeService, TerminationTrackingService. Questo esempio è tratto dall'esempio SDK Termination Tracking Service. Per altre informazioni, vedere Esempio di servizio di rilevamento della terminazione.

protected override void Start()
{
    base.Start();
    //
    // This will throw if we are invalid to inform the host immediately
    ValidateEventLogSource(source);
}
Protected Overrides Sub Start()
    MyBase.Start()
    '
    ' This will throw if we are invalid to inform the host immediately
    ValidateEventLogSource(source)
End Sub

Commenti

Start viene richiamato dal motore di runtime del flusso di lavoro su tutti i servizi derivati dalla classe WorkflowRuntimeService quando StartRuntime viene chiamato.

Start viene richiamato anche dal motore di runtime del flusso di lavoro quando un servizio del motore di runtime del flusso di lavoro viene aggiunto allo stesso da una chiamata a AddService dopo l'avvio del motore di runtime del flusso di lavoro. L'implementazione predefinita di Start rileva se il servizio è stato avviato e utilizza queste informazioni per generare l'eccezione adatta se il servizio viene avviato mentre è già in esecuzione.

Per fare in modo che il servizio venga avviato 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, sia in esecuzione quando il motore di runtime di flusso di lavoro chiama Start sul servizio. Nel metodo Start, pertanto, è necessario eseguire solo un'inizializzazione che non dipende dalla funzionalità fornita da altri servizi. Tali funzionalità includono quelle fornite dai servizi di base, ad esempio il servizio Utilità di pianificazione. Il motore di runtime del flusso di lavoro genera l'evento WorkflowRuntime.Started dopo aver chiamato il metodo Start di tutti i relativi servizi. Se il servizio richiede ulteriori inizializzazioni dopo l'avvio di tutti i servizi del motore di runtime del flusso di lavoro, è possibile eseguire l'override del metodo OnStarted per eseguire tale inizializzazione quando viene generato l'evento Start.

Nota

Se il servizio viene aggiunto al motore di runtime del flusso di lavoro mediante una chiamata a AddService dopo l'avvio del motore di runtime del flusso di lavoro, quest'ultimo chiamerà il metodo Start sul servizio. In questa situazione, tuttavia, l'evento Started si già è verificato, pertanto può essere necessario che il servizio esegua qualsiasi inizializzazione che normalmente eseguirebbe in OnStarted dal metodo Start. È possibile testare IsStarted per determinare se il motore di runtime del flusso di lavoro è stato avviato.

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

Si applica a