Sdílet prostřednictvím


WorkflowRuntime.StartRuntime Metoda

Definice

Spustí modul runtime pracovního postupu a služby modulu runtime pracovního postupu.

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

Výjimky

Pro tuto WorkflowRuntimeslužbu je zaregistrovaných více než jedna služba pracovního postupu CommitWorkBatch služby.

-nebo-

V této WorkflowRuntimeslužbě je zaregistrovaných více než jedna služba plánovače.

-nebo-

Pro tuto WorkflowRuntimeslužbu je zaregistrovaných více než jedna služba trvalosti.

Příklady

Následující příklad kódu ukazuje, jak používat WorkflowRuntime funkce z hostitele pracovního postupu. Kód volá poté, co StartRuntimeWorkflowRuntime vytvoří WorkflowRuntime instanci a po volání AddService pro přidání služeb do modulu runtime. Volá také StartRuntime před provedením jakéhokoli jiného zpracování.

Tento příklad kódu je součástí ukázky Zrušení pracovního postupu .

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

Poznámky

Tato metoda ověří, zda existuje platná sada základních služeb, a poté spustí všechny služby, které jsou odvozeny z WorkflowRuntimeService třídy . Musí existovat jedna z následujících základních služeb: služba pracovního postupu CommitWorkBatch odvozená ze WorkflowCommitWorkBatchService základní třídy a služba plánovače WorkflowSchedulerService odvozená ze základní třídy. Pokud chybí některé nebo obě tyto základní služby, modul runtime pracovního postupu poskytuje odpovídající výchozí službu: DefaultWorkflowCommitWorkBatchService pro službu pracovního postupu CommitWorkBatch a DefaultWorkflowSchedulerService pro službu plánovače. Služba trvalosti je volitelná, ale může existovat maximálně jedna služba trvalosti. Po ověření konfigurace StartRuntime služby volá všechny Start služby, které jsou odvozeny z WorkflowRuntimeService třídy . Nakonec modul runtime pracovního postupu nastaví IsStarted a vyvolá Started událost.

Po spuštění modulu runtime pracovního postupu nemůžete přidávat ani odebírat základní služby. Základní služby jsou služby, které jsou odvozené z WorkflowSchedulerService třídy , WorkflowCommitWorkBatchService třídy WorkflowPersistenceService , třídy nebo TrackingService třídy . Pokud voláte StartRuntime , když je spuštěn modul runtime pracovního postupu, neprovádí se žádná akce.

Platí pro