Поделиться через


WorkflowRuntime.StartRuntime Метод

Определение

Запускает механизм среды выполнения рабочих процессов и его службы.

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

Исключения

Объект WorkflowRuntime удален.

Имеется больше одной службы CommitWorkBatch рабочего процесса, зарегистрированной данным объектом WorkflowRuntime.

-или-

Имеется больше одной службы планирования заданий, зарегистрированной данным объектом WorkflowRuntime.

-или-

Имеется больше одной службы сохраняемости, зарегистрированной данным объектом WorkflowRuntime.

Примеры

В следующем примере кода показано использование функций класса WorkflowRuntime с узла рабочего процесса. Код вызывает метод StartRuntime после того, как метод WorkflowRuntime создает экземпляр класса WorkflowRuntime и вызывает метод AddService, чтобы добавить службы к среде выполнения. Он также вызывает метод StartRuntime перед выполнением остальных действий.

Этот пример кода является частью примера отмены рабочего процесса .

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

Комментарии

Метод проверяет существование допустимого набора базовых служб и запускает службы, производные от класса WorkflowRuntimeService. Должна быть одна из следующих основных служб: служба рабочего процесса CommitWorkBatch , производная от WorkflowCommitWorkBatchService базового класса, и служба планировщика, производная от WorkflowSchedulerService базового класса. Если отсутствует ни один из этих основных служб или обе из них, подсистема среды выполнения рабочих процессов предоставляет соответствующую службу по умолчанию: DefaultWorkflowCommitWorkBatchService для службы рабочих процессов CommitWorkBatch и DefaultWorkflowSchedulerService для службы планировщика. Служба сохраняемости является необязательной, но может присутствовать только одна служба сохраняемости. Метод StartRuntime проверяет конфигурацию служб, а затем вызывает метод Start для всех служб, производных от класса WorkflowRuntimeService. Наконец, механизм среды выполнения рабочих процессов задает значение свойству IsStarted и создает событие Started.

После запуска механизма среды выполнения рабочих процессов добавлять или удалять базовые службы нельзя. Базовые службы — это службы, производные от классов WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService или TrackingService. Вызов метода StartRuntime во время работы механизма среды выполнения рабочих процессов не приводит ни к каким действиям.

Применяется к