WorkflowRuntime.StartRuntime Metodo

Definizione

Avvia il motore di runtime del flusso di lavoro e i relativi servizi.

public:
 void StartRuntime();
public void StartRuntime ();
member this.StartRuntime : unit -> unit
Public Sub StartRuntime ()

Eccezioni

Più di un servizio CommitWorkBatch del flusso di lavoro è registrato in questo WorkflowRuntime.

-oppure-

Più di un servizio Utilità di pianificazione è registrato in questo WorkflowRuntime.

-oppure-

Più di un servizio di persistenza è registrato in questo WorkflowRuntime.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare una funzionalità WorkflowRuntime da un host del flusso di lavoro. Il codice chiama StartRuntime dopo che WorkflowRuntime crea un'istanza di WorkflowRuntime e dopo la chiamata a AddService per aggiungere servizi al runtime. Chiama anche StartRuntime prima che si verifichi qualsiasi altra elaborazione.

Questo esempio di codice fa parte dell'esempio Di annullamento di un flusso di lavoro .

static void Main()
{
    string connectionString = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;";

    using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
    {
        ExternalDataExchangeService dataService = new ExternalDataExchangeService();
        workflowRuntime.AddService(dataService);
        dataService.AddService(expenseService);

        workflowRuntime.AddService(new SqlWorkflowPersistenceService(connectionString));
        workflowRuntime.StartRuntime();

        workflowRuntime.WorkflowCompleted += OnWorkflowCompleted;
        workflowRuntime.WorkflowTerminated += OnWorkflowTerminated;
        workflowRuntime.WorkflowIdled += OnWorkflowIdled;
        workflowRuntime.WorkflowAborted += OnWorkflowAborted;

        Type type = typeof(SampleWorkflow1);
        WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
        workflowInstance.Start();

        waitHandle.WaitOne();

        workflowRuntime.StopRuntime();
    }
}
Shared Sub Main()
    Dim connectionString As String = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;"
    Using workflowRuntime As New WorkflowRuntime()
        Dim dataService As New ExternalDataExchangeService()
        workflowRuntime.AddService(dataService)
        dataService.AddService(expenseService)

        workflowRuntime.AddService(New SqlWorkflowPersistenceService(connectionString))


        AddHandler workflowRuntime.WorkflowCompleted, AddressOf OnWorkflowCompleted
        AddHandler workflowRuntime.WorkflowTerminated, AddressOf OnWorkflowTerminated
        AddHandler workflowRuntime.WorkflowIdled, AddressOf OnWorkflowIdled
        AddHandler workflowRuntime.WorkflowAborted, AddressOf OnWorkflowAborted


        Dim workflowInstance As WorkflowInstance
        workflowInstance = workflowRuntime.CreateWorkflow(GetType(SampleWorkflow))
        workflowInstance.Start()

        waitHandle.WaitOne()

        workflowRuntime.StopRuntime()
    End Using
End Sub

Commenti

Questo metodo verifica che sia disponibile un set valido di servizi di base e quindi avvia qualsiasi servizio che deriva dalla classe WorkflowRuntimeService. Deve essere presente uno e uno solo dei servizi principali seguenti: un servizio flusso di lavoro CommitWorkBatch derivato dalla WorkflowCommitWorkBatchService classe base e un servizio dell'utilità di pianificazione derivato dalla WorkflowSchedulerService classe base. Se uno o entrambi questi servizi principali sono mancanti, il motore di runtime del flusso di lavoro fornisce il servizio predefinito appropriato: DefaultWorkflowCommitWorkBatchService per il servizio flusso di lavoro CommitWorkBatch e DefaultWorkflowSchedulerService per il servizio utilità di pianificazione. Un servizio di persistenza è facoltativo, ma può essere presente al massimo un solo servizio di persistenza. Dopo la convalida della configurazione del servizio, StartRuntime chiama Start su tutti i servizi derivati dalla classe WorkflowRuntimeService. Infine, il motore di runtime del flusso di lavoro imposta IsStarted e genera l'evento Started.

Non è possibile aggiungere o rimuovere servizi di base dopo l'avvio del motore di runtime del flusso di lavoro. I servizi di base sono servizi derivati dalle classi WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService o TrackingService. Se si chiama StartRuntime mentre il motore di runtime del flusso di lavoro è in esecuzione, non viene eseguita alcuna azione.

Si applica a