Aracılığıyla paylaş


WorkflowRuntime.StartRuntime Yöntem

Tanım

İş akışı çalışma zamanı altyapısını ve iş akışı çalışma zamanı altyapısı hizmetlerini başlatır.

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

Özel durumlar

Bu WorkflowRuntimeile kayıtlı birden fazla hizmet iş akışı CommitWorkBatch hizmeti var.

-veya-

Bu ile WorkflowRuntimekayıtlı birden fazla zamanlayıcı hizmeti var.

-veya-

Bu WorkflowRuntimeile kaydedilen birden fazla kalıcılık hizmeti var.

Örnekler

Aşağıdaki kod örneği, bir iş akışı konağından işlevselliğin nasıl kullanılacağını WorkflowRuntime gösterir. Kod, örneği WorkflowRuntime oluşturup çalışma zamanına WorkflowRuntime hizmet eklemek için çağrısı yaptıktan sonra öğesini çağırır StartRuntimeAddService. Ayrıca, başka bir işlem gerçekleşmeden önce de çağırır StartRuntime .

Bu kod örneği, İş Akışı İptal Etme örneğinin bir parçasıdır.

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

Açıklamalar

Bu yöntem geçerli bir çekirdek hizmet kümesinin mevcut olduğunu doğrular ve ardından sınıfından WorkflowRuntimeService türetilen tüm hizmetleri başlatır. Aşağıdaki temel hizmetlerden biri ve yalnızca biri olmalıdır: temel sınıftan WorkflowCommitWorkBatchService türetilen bir iş akışı CommitWorkBatch hizmeti ve temel sınıftan WorkflowSchedulerService türetilen bir zamanlayıcı hizmeti. Bu temel hizmetlerden biri veya her ikisi de eksikse, iş akışı çalışma zamanı altyapısı uygun varsayılan hizmeti sağlar: DefaultWorkflowCommitWorkBatchService iş akışı CommitWorkBatch hizmeti ve DefaultWorkflowSchedulerService zamanlayıcı hizmeti için. Kalıcılık hizmeti isteğe bağlıdır, ancak en fazla bir kalıcılık hizmeti olabilir. Hizmet yapılandırmasını doğruladıktan sonra sınıfından StartRuntime türetilen WorkflowRuntimeService tüm hizmetleri çağırırStart. Son olarak, iş akışı çalışma zamanı altyapısı olayı ayarlar IsStarted ve tetikler Started .

İş akışı çalışma zamanı altyapısı başlatıldıktan sonra temel hizmetleri ekleyemez veya kaldıramazsınız. Temel hizmetler sınıfından, sınıfından WorkflowSchedulerService , sınıfından WorkflowCommitWorkBatchService veya sınıfından WorkflowPersistenceService türetilen hizmetlerdir TrackingService . İş akışı çalışma zamanı altyapısı çalışırken çağrısı StartRuntime yaparsanız hiçbir eylem gerçekleştirilmez.

Şunlara uygulanır