WorkflowInstance Classe

Definizione

WorkflowInstance è un runtime per istanza leggero per l'esecuzione di un programma di flusso di lavoro.WorkflowInstance is a lightweight, per-instance runtime for executing a workflow program. Può essere costruito in modo da creare una nuova istanza del flusso di lavoro o dallo stato dell'istanza esistente.It can be constructed to create a new workflow instance or from existing instance state. Le API esposte da WorkflowInstance.WorkflowInstanceControl costituiscono il set minimo di controlli di runtime dai quali possono essere implementate le operazioni di livello superiore.The APIs that WorkflowInstance.WorkflowInstanceControl exposes are the minimal set of runtime controls from which higher level operations can be implemented. Questo set di API rappresenta l'intera gamma di funzionalità del runtime.This API set represents the entire breadth of functionality of the runtime. WorkflowInstance è una classe astratta e si basa sull'implementazione di un host dei metodi astratti per offrire funzionalità host, ad esempio sincronizzazione, persistenza, rilevamento ed estensioni.WorkflowInstance is an abstract class and relies on a host's implementation of its abstract methods in order to provide host functionality such as synchronization, persistence, tracking, and extensions.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Ereditarietà
WorkflowInstance
Derivato

Commenti

WorkflowInstance è a thread singolo e presuppone che l'host sincronizzi tutti i relativi accessi.WorkflowInstance is single threaded and assumes that the host synchronizes all access to it. Un tentativo di chiamare più API contemporaneamente comporterà la generazione di un oggetto InvalidOperationException.An attempt to call multiple APIs simultaneously will result in an InvalidOperationException being thrown.

Internamente, WorkflowInstance un ha due stati: In esecuzione e sospesa.Internally, a WorkflowInstance has two states: Running and Paused. Il solo modo per effettuare la transizione del runtime dalla sospensione all'esecuzione consiste nel chiamare Run.The only way to cause the runtime to transition from paused to running is to call Run. Tutte le azioni (tranne la sospensione) possono essere eseguite solo mentre è il runtime è sospeso.All actions (except Pause) can only be taken while the runtime is Paused. Il runtime verrà automaticamente sospeso nelle situazioni seguenti:The runtime will become spontaneously Paused in the following situations:

  • Si è verificato un errore irreversibile di runtime.An error fatal to the runtime has occurred. L'host verrà segnalato tramite OnRequestAbort (che non segnala una transizione alla sospensione), quindi notificato tramite OnNotifyPaused.The host will be signaled through OnRequestAbort (which does not signal a transition to Paused) and then notified through OnNotifyPaused.

  • Un'eccezione nel flusso di lavoro non è stata intercettata e ha utilizzato caratteri di escape per la radice.An exception in the workflow was uncaught and escaped the root. L'host riceverà una notifica tramite il metodo OnNotifyUnhandledException.The host will be notified through the OnNotifyUnhandledException method.

  • L'utilità di pianificazione ha esaurito gli elementi di lavoro ed è Idle.The scheduler has run out of work items and is now Idle. L'host riceverà una notifica tramite il metodo OnNotifyPaused.The host will be notified through the OnNotifyPaused method. Si noti che l'utilità di pianificazione potrebbe avere esaurito gli elementi di lavoro perché l'istanza è inattiva o completa.Note that the scheduler could have run out of work items because the instance is idle or because the instance is complete. Il valore State della proprietà Controller può essere utilizzato per distinguere le due condizioni.The State value of the Controller property can be used to differentiate between the two.

L'host può richiedere il passaggio dall'esecuzione alla sospensione chiamando i metodi RequestPause o PauseWhenPersistable dell'istanza di WorkflowInstance.WorkflowInstanceControl restituita dalla proprietà Controller.The host can request a change from Running to Paused by calling the RequestPause or PauseWhenPersistable methods of the WorkflowInstance.WorkflowInstanceControl instance returned by the Controller property. Non esiste una risposta specifica a questa richiesta, pertanto l'host non deve tentare di correlare un metodo OnNotify* o OnRequestAbort a una chiamata specifica alla sospensione.This request should not be considered to have a specific response meaning that the host should not attempt to correlate an OnNotify* or OnRequestAbort with a specific call to pause. In risposta a una richiesta di sospensione, il runtime potrebbe eseguire la transizione alla sospensione e chiamare OnNotifyPaused mentre nell'utilità di pianificazione sono ancora presenti elementi di lavoro in sospeso.In response to a pause request, the runtime may transition to Paused and call OnNotifyPaused while the scheduler still has pending work items. Il valore State della proprietà Controller può essere utilizzato per determinare se l'utilità di pianificazione non dispone più di lavoro o è stata interrotta da una richiesta di sospensione.The State value of the Controller property can be used to determine whether the scheduler has no more work or was interrupted by a request to pause.

Il metodo RequestPause dell'istanza di WorkflowInstance.WorkflowInstanceControl restituita dalla proprietà Controller è il solo metodo che può essere chiamato mentre l'oggetto WorkflowInstance è nello stato di esecuzione.The RequestPause method of the WorkflowInstance.WorkflowInstanceControl instance returned by the Controller property is the only method which can be called while the WorkflowInstance is in the Running state. Tutti gli altri metodi, se chiamati, genereranno un oggetto InvalidOperationException. Considerate le regole di transizione di WorkflowInstance da uno stato a un altro, la nozione pubblica di esecuzione e di sospensione può essere definita come segue:All other methods will throw an InvalidOperationException if called.Given the rules for how WorkflowInstance transitions from one state to another, the public notion of Running and Paused can be defined as follows:

  • Running: stato tra una chiamata a Run e l'oggetto WorkflowInstance. OnNotify * successivo.Running - The state between a call to Run and the next WorkflowInstance.OnNotify*.

  • Paused: lo stato tra l'ultimo WorkflowInstance. OnNotify * e la chiamata successiva a Run.Paused - The state between the last WorkflowInstance.OnNotify* and the next call to Run.

Costruttori

WorkflowInstance(Activity)

Inizializza una nuova istanza della classe WorkflowInstance con la definizione del flusso di lavoro specificata.Initializes a new instance of the WorkflowInstance class with the specified workflow definition.

WorkflowInstance(Activity, WorkflowIdentity)

Inizializza una nuova istanza della classe WorkflowInstance con la definizione dei flussi di lavoro e l'identità delle definizioni specificati.Initializes a new instance of the WorkflowInstance class with the specified workflow definition and definition identity.

Proprietà

Controller

Ottiene l'istanza di WorkflowInstance.WorkflowInstanceControl per questo oggetto WorkflowInstance.Gets the WorkflowInstance.WorkflowInstanceControl instance for this WorkflowInstance.

DefinitionIdentity

Ottiene o imposta l'identità della definizione di WorkflowInstance.Gets or sets the definition identity of WorkflowInstance.

HostEnvironment

Ottiene o imposta l'ambiente radice per gli argomenti e le variabili dell'istanza del flusso di lavoro.Gets or sets the root environment for the workflow instance's arguments and variables.

Id

Ottiene l'identificatore univoco per l'istanza del flusso di lavoro.Gets the unique identifier for the workflow instance.

IsReadOnly

Ottiene un valore che indica se l'istanza del flusso di lavoro è stata inizializzata.Gets a value that indicates whether the workflow instance has been initialized.

SupportsInstanceKeys

Ottiene un valore che indica se l'host supporta l'associazione di InstanceKeys a un'istanza del runtime.Gets a value that indicates whether the host supports the association of InstanceKeys with a run-time instance.

SynchronizationContext

Ottiene o imposta l'oggetto SynchronizationContext utilizzato per la pianificazione dell'istanza di flusso di lavoro.Gets or sets the SynchronizationContext used for scheduling the workflow instance.

WorkflowDefinition

Ottiene la definizione del flusso di lavoro dell'istanza del flusso di lavoro.Gets the workflow definition of the workflow instance.

Metodi

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Chiamato dal runtime del flusso di lavoro per iniziare l'invio in modo asincrono di record di rilevamento in sospeso ai partecipanti del rilevamento.Called by the workflow runtime to begin sending pending tracking records to tracking participants asynchronously.

DisposeExtensions()

Chiama Dispose() su tutte le estensioni che implementano IDisposable.Calls Dispose() on all extensions that implement IDisposable.

EndFlushTrackingRecords(IAsyncResult)

Chiamato dal runtime del flusso di lavoro per terminare l'operazione di rilevamento.Called by the workflow runtime to end the track operation.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
FlushTrackingRecords(TimeSpan)

Chiamato dal runtime del flusso di lavoro per inviare record di rilevamento in sospeso ai partecipanti del rilevamento.Called by the workflow runtime to send pending tracking records to tracking participants.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Recupera l'elenco di attività che bloccano l'aggiornamento del flusso di lavoro.Retrieves the list of activity that is blocking the update of the workflow.

GetExtension<T>()

Restituisce un'estensione del tipo specificato.Returns an extension of the specified type.

GetExtensions<T>()

Restituisce tutte le estensioni trovate per il tipo specificato.Returns all extensions found for the specified type.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Chiamato dall'host per inizializzare l'istanza del flusso di lavoro con i valori degli argomenti e le proprietà di esecuzione.Called by the host to initialize the workflow instance with the argument values and execution properties.

Initialize(Object)

Chiamato dall'host per inizializzare l'istanza del flusso di lavoro con lo stato di runtime del flusso di lavoro.Called by the host to initialize the workflow instance with the workflow run-time state.

Initialize(Object, DynamicUpdateMap)

Chiamato dall'host per inizializzare l'istanza del flusso di lavoro con lo stato di runtime del flusso di lavoro e la mappa degli aggiornamenti.Called by the host to initialize the workflow instance with the workflow run-time state and update map.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Chiamato dal runtime del flusso di lavoro per notificare all'host che le nuove chiavi di istanza devono essere associate a questa istanza.Called by the workflow runtime to notify the host that new instance keys should be associated with this instance.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Chiamata asincrona per chiedere all'host di scaricare i record di rilevamento in sospeso nei partecipanti del rilevamento.Asynchronous call to ask host to flush pending tracking records to tracking participants.

OnBeginPersist(AsyncCallback, Object)

Chiamata asincrona per chiedere all'host di rendere persistente il flusso di lavoro.Asynchronous call to ask the host to persist the workflow.

OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

Chiamato dal runtime del flusso di lavoro per notificare all'host che sta iniziando un'operazione di ripresa di segnalibro.Called by the workflow runtime to notify the host that a resume bookmark operation is beginning.

OnDisassociateKeys(ICollection<InstanceKey>)

Chiamato dal runtime del flusso di lavoro per notificare all'host che un determinato set di chiavi di istanza non deve più essere associato a questa istanza.Called by the workflow runtime to notify the host that a certain set of instance keys should no longer be associated with this instance.

OnEndAssociateKeys(IAsyncResult)

Chiamato dal runtime del flusso di lavoro per notificare all'host che un'operazione di associazione delle chiavi è stata completata.Called by the workflow runtime to notify the host that an associate keys operation is complete.

OnEndFlushTrackingRecords(IAsyncResult)

Chiamato dal runtime del flusso di lavoro per notificare all'host quando l'operazione di scaricamento dei record di rilevamento viene completata.Called by the workflow runtime to notify the host when the flush tracking records operation is complete.

OnEndPersist(IAsyncResult)

Chiamato dal runtime del flusso di lavoro per notificare all'host che un'operazione di impostazione della persistenza è stata completata.Called by the workflow runtime to notify the host that a persist operation is complete.

OnEndResumeBookmark(IAsyncResult)

Chiamato dal runtime del flusso di lavoro per notificare all'host che un'operazione di ripresa di segnalibro è stata completata.Called by the workflow runtime to notify the host that a resume bookmark operation is complete.

OnNotifyPaused()

Chiamato dal runtime del flusso di lavoro per notificare all'host che l'istanza del flusso di lavoro ha eseguito la transizione dallo stato di esecuzione a quello di sospensione.Called by the workflow runtime to notify the host that the workflow instance has transitioned from the running state to the paused state.

OnNotifyUnhandledException(Exception, Activity, String)

Chiamato dal runtime del flusso di lavoro per notificare all'host che si è verificata un'eccezione non gestita nell'istanza del flusso di lavoro.Called by the workflow runtime to notify the host an unhandled exception has occurred in the workflow instance.

OnRequestAbort(Exception)

Chiamato dal runtime del flusso di lavoro per notificare all'host che un'operazione di interruzione è stata richiesta per l'istanza del flusso di lavoro.Called by the workflow runtime to notify the host that an abort operation has been requested for the workflow instance.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Chiamato dall'host per registrare il gestore estensioni specificato, confermare che tutte le estensioni obbligatorie siano presenti e inizializzare la raccolta di estensioni da utilizzare.Called by the host to register the specified extension manager, validate that all required extensions are present, and to initialize the collection of extensions to be used.

ThrowIfReadOnly()

Genera un oggetto InvalidOperationException se l'istanza del flusso di lavoro è stata inizializzata, come determinato da IsReadOnly.Throws an InvalidOperationException if the workflow instance has been initialized, as determined by IsReadOnly.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a