WorkflowInstance Klass

Definition

WorkflowInstance är en enkel körning per instans för att köra ett arbetsflödesprogram. Den kan konstrueras för att skapa en ny arbetsflödesinstans eller från befintligt instanstillstånd. DE API:er som WorkflowInstance.WorkflowInstanceControl exponeras är den minimala uppsättningen körningskontroller som åtgärder på högre nivå kan implementeras från. Den här API-uppsättningen representerar hela bredden av funktioner i körningen. WorkflowInstance är en abstrakt klass och förlitar sig på en värds implementering av sina abstrakta metoder för att tillhandahålla värdfunktioner som synkronisering, beständighet, spårning och tillägg.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Arv
WorkflowInstance
Härledda

Kommentarer

WorkflowInstance är en trådad och förutsätter att värden synkroniserar all åtkomst till den. Ett försök att anropa flera API:er samtidigt resulterar i att en InvalidOperationException utlöses.

Internt har en WorkflowInstance två tillstånd: Körs och pausas. Det enda sättet att få körningen att övergå från pausad till att köras är att anropa Run. Alla åtgärder (utom Pausa) kan bara utföras medan körningen är pausad. Körningen pausas spontant i följande situationer:

  • Ett fel som är allvarligt för körningen har inträffat. Värden signaleras genom OnRequestAbort (som inte signalerar en övergång till Pausad) och meddelas sedan via OnNotifyPaused.

  • Ett undantag i arbetsflödet har inte tagits bort och undgick roten. Värden meddelas via OnNotifyUnhandledException metoden.

  • Schemaläggaren har slut på arbetsobjekt och är nu Idle. Värden meddelas via OnNotifyPaused metoden. Observera att schemaläggaren kan ha slut på arbetsobjekt eftersom instansen är inaktiv eller eftersom instansen är klar. Värdet State för Controller egenskapen kan användas för att skilja mellan de två.

Värden kan begära en ändring från Körs till Pausad genom att anropa RequestPause metoderna eller PauseWhenPersistable för den WorkflowInstance.WorkflowInstanceControl instans som returneras av Controller egenskapen. Den här begäran bör inte anses ha ett specifikt svar, vilket innebär att värden inte ska försöka korrelera en OnNotify* eller OnRequestAbort med ett specifikt anrop för att pausa. Som svar på en pausbegäran kan körningen övergå till Pausad och anropa OnNotifyPaused medan schemaläggaren fortfarande har väntande arbetsobjekt. Värdet State för Controller egenskapen kan användas för att avgöra om schemaläggaren inte har mer arbete eller avbröts av en begäran om paus.

Metoden RequestPause för den instans som WorkflowInstance.WorkflowInstanceControl returneras av Controller egenskapen är den enda metoden som kan anropas medan WorkflowInstance är i tillståndet Körs. Alla andra metoder genererar ett InvalidOperationException om det anropas. Med tanke på reglerna för hur WorkflowInstance övergångar från ett tillstånd till ett annat kan det offentliga begreppet Körs och pausas definieras på följande sätt:

  • Körs – tillståndet mellan ett anrop till Run och nästa WorkflowInstance.OnNotify*.

  • Pausad – tillståndet mellan den senaste WorkflowInstance.OnNotify* och nästa anrop till Run.

Konstruktorer

Name Description
WorkflowInstance(Activity, WorkflowIdentity)

Initierar en ny instans av WorkflowInstance klassen med den angivna arbetsflödesdefinitionen och definitionsidentiteten.

WorkflowInstance(Activity)

Initierar en ny instans av WorkflowInstance klassen med den angivna arbetsflödesdefinitionen.

Egenskaper

Name Description
Controller

Hämtar instansen WorkflowInstance.WorkflowInstanceControl för den här WorkflowInstance.

DefinitionIdentity

Hämtar eller anger definitionsidentiteten WorkflowInstanceför .

HostEnvironment

Hämtar eller anger rotmiljön för arbetsflödesinstansens argument och variabler.

Id

Hämtar den unika identifieraren för arbetsflödesinstansen.

IsReadOnly

Hämtar ett värde som anger om arbetsflödesinstansen har initierats.

SupportsInstanceKeys

Hämtar ett värde som anger om värden stöder associationen InstanceKeys med en körningsinstans.

SynchronizationContext

Hämtar eller anger den SynchronizationContext som används för att schemalägga arbetsflödesinstansen.

WorkflowDefinition

Hämtar arbetsflödesdefinitionen för arbetsflödesinstansen.

Metoder

Name Description
BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Anropas av arbetsflödeskörningen för att börja skicka väntande spårningsposter till att spåra deltagarna asynkront.

DisposeExtensions()

Anropar Dispose() alla tillägg som implementerar IDisposable.

EndFlushTrackingRecords(IAsyncResult)

Anropas av arbetsflödeskörningen för att avsluta spårningsåtgärden.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
FlushTrackingRecords(TimeSpan)

Anropas av arbetsflödeskörningen för att skicka väntande spårningsposter till spårningsdeltagare.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Hämtar listan över aktiviteter som blockerar uppdateringen av arbetsflödet.

GetExtension<T>()

Returnerar ett tillägg av den angivna typen.

GetExtensions<T>()

Returnerar alla tillägg som hittades för den angivna typen.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Anropas av värden för att initiera arbetsflödesinstansen med argumentvärdena och körningsegenskaperna.

Initialize(Object, DynamicUpdateMap)

Anropas av värden för att initiera arbetsflödesinstansen med arbetsflödets körningstillstånd och uppdateringskarta.

Initialize(Object)

Anropas av värden för att initiera arbetsflödesinstansen med arbetsflödets körningstillstånd.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Anropas av arbetsflödeskörningen för att meddela värden att nya instansnycklar ska associeras med den här instansen.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Asynkront anrop för att be värden att rensa väntande spårningsposter till spårningsdeltagare.

OnBeginPersist(AsyncCallback, Object)

Asynkront anrop för att be värden att bevara arbetsflödet.

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

Anropas av arbetsflödeskörningen för att meddela värden att en återuppta bokmärkesåtgärd börjar.

OnDisassociateKeys(ICollection<InstanceKey>)

Anropas av arbetsflödeskörningen för att meddela värden att en viss uppsättning instansnycklar inte längre ska associeras med den här instansen.

OnEndAssociateKeys(IAsyncResult)

Anropas av arbetsflödeskörningen för att meddela värden att en associerad nyckelåtgärd har slutförts.

OnEndFlushTrackingRecords(IAsyncResult)

Anropas av arbetsflödeskörningen för att meddela värden när åtgärden för att rensa spårningsposter är klar.

OnEndPersist(IAsyncResult)

Anropas av arbetsflödeskörningen för att meddela värden att en beständig åtgärd är klar.

OnEndResumeBookmark(IAsyncResult)

Anropas av arbetsflödeskörningen för att meddela värden att en återuppta bokmärkesåtgärd är klar.

OnNotifyPaused()

Anropas av arbetsflödeskörningen för att meddela värden att arbetsflödesinstansen har övergått från körningstillståndet till det pausade tillståndet.

OnNotifyUnhandledException(Exception, Activity, String)

Anropas av arbetsflödeskörningen för att meddela värden att ett ohanterat undantag har inträffat i arbetsflödesinstansen.

OnRequestAbort(Exception)

Anropas av arbetsflödeskörningen för att meddela värden att en avbruten åtgärd har begärts för arbetsflödesinstansen.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Anropas av värden för att registrera den angivna tilläggshanteraren, verifiera att alla nödvändiga tillägg finns och initiera samlingen med tillägg som ska användas.

ThrowIfReadOnly()

Utlöser ett InvalidOperationException om arbetsflödesinstansen har initierats, enligt .IsReadOnly

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för