WorkflowInstance Sınıf

Tanım

WorkflowInstance , bir iş akışı programını yürütmek için basit, örnek başına çalışma zamanı. Yeni bir iş akışı örneği veya var olan örnek durumu oluşturmak için oluşturulabilir. Öğesinin açığa çıkardığı API 'Ler, WorkflowInstance.WorkflowInstanceControl daha üst düzey işlemleri uygulanabilecek en düşük çalışma zamanı denetimleri kümesidir. Bu API kümesi, çalışma zamanının tüm özelliklerini temsil eder. WorkflowInstance , soyut bir sınıftır ve eşitleme, kalıcılık, izleme ve uzantılar gibi ana bilgisayar işlevlerini sağlamak için ana bilgisayarın soyut yöntemleri uygulamasını kullanır.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Devralma
WorkflowInstance
Türetilmiş

Açıklamalar

WorkflowInstance tek iş parçacıklıdır ve konağın buna tüm erişimi eşitlediğini varsayar. Birden çok API 'yi aynı anda çağırma girişimi, oluşan bir oluşmasına neden olur InvalidOperationException .

Dahili olarak, WorkflowInstance iki durum vardır: çalışıyor ve duraklatıldı. Çalışma zamanının duraklama durumundan çalıştırmaya geçmesine neden olan tek yol, çağrıdır Run . Tüm eylemler (duraklatma hariç) yalnızca çalışma zamanı duraklatıldığında alınabilir. Çalışma zamanı aşağıdaki durumlarda beklenmedik şekilde duraklatılmış olacaktır:

  • Çalışma zamanı için önemli bir hata oluştu. Ana bilgisayara OnRequestAbort (duraklatılmış bir geçişe işaret etmez) ve sonra bildirim gönderilir OnNotifyPaused .

  • İş akışında bir özel durum yakalanmıştı ve köke kaçışlandı. Ana bilgisayara yöntemi aracılığıyla bildirim alınacaktır OnNotifyUnhandledException .

  • Zamanlayıcı iş öğelerinin dışında çalışıyor ve şu anda Idle . Ana bilgisayara yöntemi aracılığıyla bildirim alınacaktır OnNotifyPaused . Örnek boşta olduğu veya örnek tamamlandığı için Scheduler 'ın iş öğelerinin tükendiğini unutmayın. State Controller Özelliğinin değeri iki arasında ayrım yapmak için kullanılabilir.

Konak, RequestPause PauseWhenPersistable WorkflowInstance.WorkflowInstanceControl özelliği tarafından döndürülen örneğin veya yöntemlerini çağırarak, çalışma içinden duraklatılmış bir değişiklik isteğinde bulunabilir Controller . Bu isteğin belirli bir yanıt olduğunu düşünülmemelidir, çünkü konağın bir OnNotify * OnRequestAbort ile veya duraklatma için belirli bir çağrıyla ilişkilendirilmesi denenmemelidir. Bir duraklatma isteğine yanıt olarak, OnNotifyPaused Zamanlayıcı hala bekleyen iş öğelerine sahip olduğu sürece, çalışma zamanı duraklatılmış ve çağrıya geçiş gösterebilir. StateÖzelliğin değeri, Controller Scheduler 'ın daha fazla iş kalmadığını veya duraklamaya yönelik bir istek tarafından kesintiye uğratılmadığını belirlemede kullanılabilir.

RequestPause WorkflowInstance.WorkflowInstanceControl Özelliği tarafından döndürülen örnek yöntemi, Controller çalışır durumda olduğunda çağrılabilecek tek yöntemdir WorkflowInstance . Diğer tüm yöntemler InvalidOperationException , çağrılırsa bir oluşturur. Bir durumdan diğerine geçiş yapma kuralları verildiğinde WorkflowInstance , çalışan ve duraklatılan ortak kavram kavramı aşağıdaki gibi tanımlanabilir:

  • Çalışıyor- Run ve bir sonraki WorkflowInstance. OnNotify * çağrısı arasındaki durum.

  • Duraklatıldı-son WorkflowInstance. OnNotify * ile sonraki çağrı arasındaki durum Run .

Oluşturucular

WorkflowInstance(Activity)

WorkflowInstanceBelirtilen iş akışı tanımıyla sınıfının yeni bir örneğini başlatır.

WorkflowInstance(Activity, WorkflowIdentity)

WorkflowInstanceBelirtilen iş akışı tanımı ve tanım kimliğiyle sınıfın yeni bir örneğini başlatır.

Özellikler

Controller

WorkflowInstance.WorkflowInstanceControlBunun örneğini alır WorkflowInstance .

DefinitionIdentity

Tanım kimliğini alır veya ayarlar WorkflowInstance .

HostEnvironment

İş akışı örneği bağımsız değişkenleri ve değişkenleri için kök ortamı alır veya ayarlar.

Id

İş akışı örneği için benzersiz tanımlayıcıyı alır.

IsReadOnly

İş akışı örneğinin başlatılmış olup olmadığını gösteren bir değer alır.

SupportsInstanceKeys

Konağın bir çalışma zamanı örneğiyle ilişkilendirmesini destekleyip desteklemediğini gösteren bir değer alır InstanceKeys .

SynchronizationContext

SynchronizationContextİş akışı örneğini zamanlamak için kullanılan öğesini alır veya ayarlar.

WorkflowDefinition

İş akışı örneğinin iş akışı tanımını alır.

Yöntemler

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Katılımcıları zaman uyumsuz olarak izlemek üzere bekleyen izleme kayıtlarını göndermeye başlamak için iş akışı çalışma zamanı tarafından çağırılır.

DisposeExtensions()

Dispose()Uygulayan tüm Uzantılardaki çağrılar IDisposable .

EndFlushTrackingRecords(IAsyncResult)

İzleme işlemini sonlandırmak için iş akışı çalışma zamanı tarafından çağırılır.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
FlushTrackingRecords(TimeSpan)

Katılımcıları izlemek için bekleyen izleme kayıtlarını göndermek üzere iş akışı çalışma zamanı tarafından çağırılır.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

İş akışının güncelleştirilmesini engelleyen etkinliğin listesini alır.

GetExtension<T>()

Belirtilen türün bir uzantısını döndürür.

GetExtensions<T>()

Belirtilen tür için bulunan tüm uzantıları döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Bağımsız değişken değerleri ve yürütme özellikleriyle iş akışı örneğini başlatmak için ana bilgisayar tarafından çağırılır.

Initialize(Object)

İş akışı örneğini iş akışı çalışma zamanı durumuyla başlatmak için ana bilgisayar tarafından çağırılır.

Initialize(Object, DynamicUpdateMap)

İş akışı çalışma zamanı durumu ve güncelleştirme haritası ile iş akışı örneğini başlatmak için ana bilgisayar tarafından çağırılır.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Konağa yeni örnek anahtarlarının bu örnekle ilişkilendirilmesi gerektiğini bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Ana bilgisayarı katılımcıları izlemek için bekleyen izleme kayıtlarını temizlemesini istemek için zaman uyumsuz çağrı.

OnBeginPersist(AsyncCallback, Object)

Konağın iş akışını kalıcı hale getirmesini istemek için zaman uyumsuz çağrı.

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

Bir yeniden başlatma yer işareti işleminin bittiğini konağa bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

OnDisassociateKeys(ICollection<InstanceKey>)

Konağa belirli bir örnek anahtarı kümesinin artık bu örnekle ilişkilendirilmemesi gerektiğini bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

OnEndAssociateKeys(IAsyncResult)

Bir anahtarı ilişkilendir işleminin tamamlandığını konağa bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

OnEndFlushTrackingRecords(IAsyncResult)

İzleme kayıtlarını Temizleme işlemi tamamlandığında konağa bildirimde bulunan iş akışı çalışma zamanı tarafından çağırılır.

OnEndPersist(IAsyncResult)

Kalıcı bir işlemin tamamlandığını konağa bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

OnEndResumeBookmark(IAsyncResult)

Bir yeniden başlatma yer işareti işleminin tamamlandığını konağa bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

OnNotifyPaused()

İş akışı örneğinin çalışma durumundan duraklama durumuna geçirildiğinden konağa bildirimde bulunan iş akışı çalışma zamanı tarafından çağırılır.

OnNotifyUnhandledException(Exception, Activity, String)

Konağa işlenmeyen bir özel durum oluştuğundan iş akışı örneğinde, iş akışı çalışma zamanı tarafından çağırılır.

OnRequestAbort(Exception)

İş akışı örneği için bir iptal işleminin istendiğini konağa bildirmek için iş akışı çalışma zamanı tarafından çağırılır.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Belirtilen uzantı yöneticisini kaydetmek için konak tarafından çağırılır, tüm gerekli uzantıların mevcut olduğunu ve kullanılacak uzantı koleksiyonunu başlatmasını doğrulayın.

ThrowIfReadOnly()

, InvalidOperationException Tarafından belirlendiği şekilde, iş akışı örneği başlatılmışsa bir oluşturur IsReadOnly .

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır