WorkflowRuntime.StartRuntime Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
WorkflowRuntime viene eliminato.
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.