Sdílet prostřednictvím


WorkflowInstance Třída

Definice

WorkflowInstance je jednoduchý modul runtime pro jednotlivé instance pro spuštění programu pracovního postupu. Lze vytvořit novou instanci pracovního postupu nebo z existujícího stavu instance. Rozhraní API, která WorkflowInstance.WorkflowInstanceControl zpřístupňují, představují minimální sadu ovládacích prvků modulu runtime, ze kterých lze implementovat operace vyšší úrovně. Tato sada rozhraní API představuje celou řadu funkcí modulu runtime. WorkflowInstance je abstraktní třída a spoléhá na implementaci hostitele jeho abstraktních metod, aby poskytovala funkce hostitele, jako je synchronizace, trvalost, sledování a rozšíření.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Dědičnost
WorkflowInstance
Odvozené

Poznámky

WorkflowInstance je jedno vlákno a předpokládá, že hostitel synchronizuje veškerý přístup k němu. Při pokusu o volání více rozhraní API současně dojde k InvalidOperationException vyvolání.

Interně WorkflowInstance má dva stavy: Spuštěno a Pozastaveno. Jediným způsobem, jak způsobit, že modul runtime přejde z pozastaveného na spuštěný, je volat Run. Všechny akce (s výjimkou pozastavení) je možné provést pouze v době, kdy je modul runtime pozastavený. Modul runtime se spontánně pozastaví v následujících situacích:

  • Došlo k chybě, která je pro modul runtime závažná. Hostitel bude signalován ( OnRequestAbort což neoznačuje přechod na pozastavený) a pak bude upozorněn prostřednictvím OnNotifyPaused.

  • Výjimka v pracovním postupu nebyla zachycená a utekla z kořenového adresáře. Hostitel bude prostřednictvím metody upozorněn OnNotifyUnhandledException .

  • Plánovač už nemá pracovní položky a je teď Idle. Hostitel bude prostřednictvím metody upozorněn OnNotifyPaused . Všimněte si, že plánovač mohl mít nedostatek pracovních položek, protože instance je nečinná nebo je instance dokončena. Hodnotu StateController vlastnosti lze použít k rozlišení mezi těmito dvěma vlastnostmi.

Hostitel může požádat o změnu ze spuštění na Pozastaveno voláním RequestPause nebo PauseWhenPersistable metodami WorkflowInstance.WorkflowInstanceControl instance vrácené Controller vlastností. Tento požadavek by neměl být považován za konkrétní odpověď, což znamená, že by se hostitel neměl pokoušet o korelaci OnNotify* nebo OnRequestAbort s konkrétním voláním k pozastavení. V reakci na žádost o pozastavení může modul runtime přejít na Pozastaveno a volat OnNotifyPaused , zatímco plánovač má stále čekající pracovní položky. Hodnotu StateController vlastnosti lze použít k určení, zda plánovač nemá více práce nebo byl přerušen žádostí o pozastavení.

Metoda RequestPauseWorkflowInstance.WorkflowInstanceControl instance vrácené Controller vlastností je jedinou metodou, kterou lze volat, zatímco WorkflowInstance je ve stavu Spuštěno. Všechny ostatní metody vyvolá metodu InvalidOperationException if. Vzhledem k pravidlům pro WorkflowInstance přechody z jednoho stavu do druhého lze veřejný pojem Spuštěno a Pozastaveno definovat takto:

  • Spuštěno – stav mezi voláním Run a dalším WorkflowInstance.OnNotify*.

  • Pozastaveno – stav mezi posledním workflowInstance.OnNotify* a dalším voláním Run.

Konstruktory

Name Description
WorkflowInstance(Activity, WorkflowIdentity)

Inicializuje novou instanci WorkflowInstance třídy se zadanou definicí pracovního postupu a identitou definice.

WorkflowInstance(Activity)

Inicializuje novou instanci WorkflowInstance třídy se zadanou definicí pracovního postupu.

Vlastnosti

Name Description
Controller

WorkflowInstance.WorkflowInstanceControl Získá instanci pro toto WorkflowInstance.

DefinitionIdentity

Získá nebo nastaví definici identity WorkflowInstance.

HostEnvironment

Získá nebo nastaví kořenové prostředí pro argumenty a proměnné instance pracovního postupu.

Id

Získá jedinečný identifikátor instance pracovního postupu.

IsReadOnly

Získá hodnotu, která označuje, zda byla instance pracovního postupu inicializována.

SupportsInstanceKeys

Získá hodnotu, která určuje, zda hostitel podporuje přidružení InstanceKeys k instanci za běhu.

SynchronizationContext

Získá nebo nastaví SynchronizationContext použité pro plánování instance pracovního postupu.

WorkflowDefinition

Získá definici pracovního postupu instance pracovního postupu.

Metody

Name Description
BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Volal modul runtime pracovního postupu, aby začal odesílat záznamy čekající na sledování účastníků asynchronně.

DisposeExtensions()

Volá Dispose() všechna rozšíření, která implementují IDisposable.

EndFlushTrackingRecords(IAsyncResult)

Zavolá se modulem runtime pracovního postupu pro ukončení operace sledování.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
FlushTrackingRecords(TimeSpan)

Volal modul runtime pracovního postupu, který odesílá záznamy čekající na sledování účastníků.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Načte seznam aktivit, které blokují aktualizaci pracovního postupu.

GetExtension<T>()

Vrátí rozšíření zadaného typu.

GetExtensions<T>()

Vrátí všechna rozšíření nalezená pro zadaný typ.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Volá hostitel, aby inicializoval instanci pracovního postupu s hodnotami argumentů a vlastnostmi spuštění.

Initialize(Object, DynamicUpdateMap)

Zavolá hostitel, aby inicializoval instanci pracovního postupu se stavem spuštění pracovního postupu a aktualizací mapy.

Initialize(Object)

Zavolá hostitel, aby inicializoval instanci pracovního postupu se stavem spuštění pracovního postupu.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Volal modul runtime pracovního postupu, aby hostiteli oznámil, že k této instanci by měly být přidruženy nové klíče instance.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Asynchronní volání, které požádá hostitele o vyprázdnění čekajících záznamů sledování pro sledování účastníků.

OnBeginPersist(AsyncCallback, Object)

Asynchronní volání, které požádá hostitele o zachování pracovního postupu.

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

Zavolá modul runtime pracovního postupu, který hostiteli oznámí, že začíná operace obnovení záložky.

OnDisassociateKeys(ICollection<InstanceKey>)

Volal modul runtime pracovního postupu, který upozorní hostitele, že k této instanci by již neměla být přidružena určitá sada klíčů instancí.

OnEndAssociateKeys(IAsyncResult)

Zavolá se modulem runtime pracovního postupu, který hostiteli oznámí, že je dokončena operace přidružení klíčů.

OnEndFlushTrackingRecords(IAsyncResult)

Zavolá modul runtime pracovního postupu, který upozorní hostitele na dokončení operace sledování záznamů sledování.

OnEndPersist(IAsyncResult)

Zavolá se modulem runtime pracovního postupu, který upozorní hostitele, že je dokončena trvalá operace.

OnEndResumeBookmark(IAsyncResult)

Zavolá se modulem runtime pracovního postupu, který hostiteli oznámí, že je dokončena operace obnovení záložky.

OnNotifyPaused()

Zavolá modul runtime pracovního postupu, který hostiteli oznámí, že instance pracovního postupu přešla ze spuštěného stavu do pozastaveného stavu.

OnNotifyUnhandledException(Exception, Activity, String)

Volané modulem runtime pracovního postupu, který hostiteli oznámí neošetřenou výjimku, došlo v instanci pracovního postupu.

OnRequestAbort(Exception)

Zavolá modul runtime pracovního postupu, který hostiteli oznámí, že byla pro instanci pracovního postupu požadována operace přerušení.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Volal hostitel k registraci zadaného správce rozšíření, ověřte, že jsou k dispozici všechna požadovaná rozšíření, a inicializovat kolekci rozšíření, která se mají použít.

ThrowIfReadOnly()

InvalidOperationException Vyvolá výjimku, pokud byla instance pracovního postupu inicializována, jak je určeno IsReadOnly.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro