WorkflowInstance Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
WorkflowInstance est un runtime léger par instance pour l’exécution d’un programme de flux de travail. Il peut être construit pour créer une instance de flux de travail ou à partir de l’état d’instance existant. Les API qui WorkflowInstance.WorkflowInstanceControl exposent sont l’ensemble minimal de contrôles d’exécution à partir desquels les opérations de niveau supérieur peuvent être implémentées. Cet ensemble d’API représente l’ensemble des fonctionnalités du runtime. WorkflowInstance est une classe abstraite et s’appuie sur l’implémentation d’un hôte de ses méthodes abstraites afin de fournir des fonctionnalités d’hôte telles que la synchronisation, la persistance, le suivi et les extensions.
public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
- Héritage
-
WorkflowInstance
- Dérivé
Remarques
WorkflowInstance est thread unique et suppose que l’hôte synchronise tout l’accès à celui-ci. Une tentative d’appel simultané de plusieurs API entraîne une InvalidOperationException levée.
En interne, il WorkflowInstance existe deux états : En cours d’exécution et en pause. La seule façon de faire passer l’exécution du runtime en pause à l’exécution consiste à appeler Run. Toutes les actions (à l’exception de la pause) ne peuvent être effectuées que pendant que le runtime est suspendu. Le runtime devient spontanément suspendu dans les situations suivantes :
Une erreur irrécupérable pour le runtime s’est produite. L’hôte est signalé via OnRequestAbort (ce qui ne signale pas une transition vers pause), puis averti via OnNotifyPaused.
Une exception dans le flux de travail n’a pas été interceptée et a échappé à la racine. L’hôte sera averti par le biais de la OnNotifyUnhandledException méthode.
Le planificateur a dépassé les éléments de travail et est maintenant Idle. L’hôte sera averti par le biais de la OnNotifyPaused méthode. Notez que le planificateur peut avoir dépassé les éléments de travail, car l’instance est inactive ou parce que l’instance est terminée. La State valeur de la Controller propriété peut être utilisée pour différencier les deux.
L’hôte peut demander une modification de l’exécution en pause en appelant l’instance RequestPause ou PauseWhenPersistable les méthodes de l’instance WorkflowInstance.WorkflowInstanceControl retournée par la Controller propriété. Cette demande ne doit pas être considérée comme ayant une réponse spécifique, ce qui signifie que l’hôte ne doit pas tenter de mettre en corrélation un OnNotify* ou OnRequestAbort avec un appel spécifique à suspendre. En réponse à une demande de pause, le runtime peut passer à Pause et appeler OnNotifyPaused pendant que le planificateur dispose toujours d’éléments de travail en attente. La State valeur de la Controller propriété peut être utilisée pour déterminer si le planificateur n’a plus de travail ou a été interrompu par une demande de pause.
La RequestPause méthode de l’instance WorkflowInstance.WorkflowInstanceControl retournée par la Controller propriété est la seule méthode qui peut être appelée pendant l’état WorkflowInstance En cours d’exécution. Toutes les autres méthodes lèvent un InvalidOperationException appel s’il est appelé. Étant donné les règles de transition WorkflowInstance d’un état à un autre, la notion publique d’exécution et de pause peut être définie comme suit :
En cours d’exécution : état entre un appel et Run le workflowInstance.OnNotify*.
Suspendu : état entre le dernier WorkflowInstance.OnNotify* et l’appel suivant à Run.
Constructeurs
| Nom | Description |
|---|---|
| WorkflowInstance(Activity, WorkflowIdentity) |
Initialise une nouvelle instance de la WorkflowInstance classe avec la définition et l’identité de définition de flux de travail spécifiées. |
| WorkflowInstance(Activity) |
Initialise une nouvelle instance de la WorkflowInstance classe avec la définition de workflow spécifiée. |
Propriétés
| Nom | Description |
|---|---|
| Controller |
Obtient l’instance WorkflowInstance.WorkflowInstanceControl de ce WorkflowInstance. |
| DefinitionIdentity |
Obtient ou définit l’identité de définition de WorkflowInstance. |
| HostEnvironment |
Obtient ou définit l’environnement racine pour les arguments et variables de l’instance de workflow. |
| Id |
Obtient l’identificateur unique de l’instance de flux de travail. |
| IsReadOnly |
Obtient une valeur qui indique si l’instance de workflow a été initialisée. |
| SupportsInstanceKeys |
Obtient une valeur qui indique si l’hôte prend en charge l’association d’une InstanceKeys instance d’exécution. |
| SynchronizationContext |
Obtient ou définit l’utilisé SynchronizationContext pour planifier l’instance de workflow. |
| WorkflowDefinition |
Obtient la définition de flux de travail de l’instance de flux de travail. |
Méthodes
| Nom | Description |
|---|---|
| BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) |
Appelé par le runtime de flux de travail pour commencer à envoyer des enregistrements de suivi en attente pour le suivi asynchrone des participants. |
| DisposeExtensions() |
Appelle Dispose() toutes les extensions qui implémentent IDisposable. |
| EndFlushTrackingRecords(IAsyncResult) |
Appelé par le runtime de workflow pour mettre fin à l’opération de suivi. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| FlushTrackingRecords(TimeSpan) |
Appelé par le runtime de flux de travail pour envoyer des enregistrements de suivi en attente aux participants de suivi. |
| GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) |
Récupère la liste des activités qui bloquent la mise à jour du flux de travail. |
| GetExtension<T>() |
Retourne une extension du type spécifié. |
| GetExtensions<T>() |
Retourne toutes les extensions trouvées pour le type spécifié. |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| Initialize(IDictionary<String,Object>, IList<Handle>) |
Appelé par l’hôte pour initialiser l’instance de workflow avec les valeurs d’argument et les propriétés d’exécution. |
| Initialize(Object, DynamicUpdateMap) |
Appelé par l’hôte pour initialiser l’instance de workflow avec l’état d’exécution du flux de travail et mettre à jour la carte. |
| Initialize(Object) |
Appelé par l’hôte pour initialiser l’instance de workflow avec l’état d’exécution du flux de travail. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) |
Appelé par le runtime de flux de travail pour informer l’hôte que les nouvelles clés d’instance doivent être associées à cette instance. |
| OnBeginFlushTrackingRecords(AsyncCallback, Object) |
Appel asynchrone pour demander à l’hôte de vider les enregistrements de suivi en attente pour le suivi des participants. |
| OnBeginPersist(AsyncCallback, Object) |
Appel asynchrone pour demander à l’hôte de conserver le flux de travail. |
| OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) |
Appelé par le runtime de flux de travail pour avertir l’hôte qu’une opération de signet de reprise commence. |
| OnDisassociateKeys(ICollection<InstanceKey>) |
Appelé par le runtime de workflow pour informer l’hôte qu’un certain ensemble de clés d’instance ne doit plus être associé à cette instance. |
| OnEndAssociateKeys(IAsyncResult) |
Appelé par le runtime de flux de travail pour informer l’hôte qu’une opération de clés associées est terminée. |
| OnEndFlushTrackingRecords(IAsyncResult) |
Appelé par le runtime de flux de travail pour avertir l’hôte lorsque l’opération d’enregistrement de suivi de vidage est terminée. |
| OnEndPersist(IAsyncResult) |
Appelé par le runtime de flux de travail pour informer l’hôte qu’une opération persistante est terminée. |
| OnEndResumeBookmark(IAsyncResult) |
Appelé par le runtime de flux de travail pour informer l’hôte qu’une opération de signet de reprise est terminée. |
| OnNotifyPaused() |
Appelé par le runtime de flux de travail pour avertir l’hôte que l’instance de workflow a passé de l’état en cours d’exécution à l’état suspendu. |
| OnNotifyUnhandledException(Exception, Activity, String) |
Appelé par le runtime de flux de travail pour avertir l’hôte d’une exception non gérée s’est produite dans l’instance de workflow. |
| OnRequestAbort(Exception) |
Appelé par le runtime de flux de travail pour avertir l’hôte qu’une opération d’abandon a été demandée pour l’instance de workflow. |
| RegisterExtensionManager(WorkflowInstanceExtensionManager) |
Appelé par l’hôte pour inscrire le gestionnaire d’extensions spécifié, vérifiez que toutes les extensions requises sont présentes et pour initialiser la collection d’extensions à utiliser. |
| ThrowIfReadOnly() |
Lève une InvalidOperationException exception si l’instance de flux de travail a été initialisée, comme déterminé par IsReadOnly. |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |