Partager via


WorkflowRuntime.StartRuntime Méthode

Définition

Démarre le moteur d'exécution de workflow et ses services.

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

Exceptions

Il existe plusieurs services de flux de travail CommitWorkBatch enregistrés auprès de ce WorkflowRuntime.

- ou -

Il y a plusieurs services de planificateur enregistrés auprès de ce WorkflowRuntime.

- ou -

Il y a plusieurs services de persistance enregistrés auprès de ce WorkflowRuntime.

Exemples

L'exemple de code suivant montre comment utiliser les fonctionnalités WorkflowRuntime d'un hôte de workflow. Le code appelle la méthode StartRuntime après que le WorkflowRuntime ait créé une instance WorkflowRuntime et qu'il ait appelé AddService pour ajouter des services à l'exécution. Il appelle également StartRuntime avant que tout autre traitement se produise.

Cet exemple de code fait partie de l’exemple Annulation d’un flux de travail .

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

Remarques

Cette méthode vérifie qu'un jeu de services principaux valide existe, puis démarre tous les services qui dérivent de la classe WorkflowRuntimeService. Il ne doit y avoir qu’un seul des services principaux suivants : un service de flux de travail CommitWorkBatch dérivé de la WorkflowCommitWorkBatchService classe de base et un service de planificateur dérivé de la WorkflowSchedulerService classe de base. Si l’un de ces services principaux ou les deux sont manquants, le moteur d’exécution du flux de travail fournit le service par défaut approprié : DefaultWorkflowCommitWorkBatchService pour le service de flux de travail CommitWorkBatch et DefaultWorkflowSchedulerService pour le service planificateur. Un service de persistance est facultatif, mais il ne peut y avoir qu'un seul du service de persistance présent. Après avoir validé la configuration du service, StartRuntime appelle Start pour tous les services dérivés de la classe WorkflowRuntimeService. Enfin, le moteur d'exécution de workflow définit la propriété IsStarted et déclenche l'événement Started.

Vous ne pouvez pas ajouter ou supprimer des services principaux après le démarrage du moteur d'exécution de workflow. Les services principaux sont des services qui dérivent des classes WorkflowSchedulerService, WorkflowCommitWorkBatchService, WorkflowPersistenceService ou TrackingService. Si vous appelez la méthode StartRuntime pendant que le moteur d'exécution de workflow s'exécute, aucune action n'est effectuée.

S’applique à