WorkflowInstance Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
WorkflowInstance adalah runtime per instans yang ringan untuk menjalankan program alur kerja. Ini dapat dibangun untuk membuat instans alur kerja baru atau dari status instans yang ada. API yang WorkflowInstance.WorkflowInstanceControl mengekspos adalah serangkaian kontrol runtime minimal tempat operasi tingkat yang lebih tinggi dapat diimplementasikan. Set API ini mewakili seluruh luasnya fungsionalitas runtime. WorkflowInstance adalah kelas abstrak dan bergantung pada implementasi host dari metode abstraknya untuk menyediakan fungsionalitas host seperti sinkronisasi, persistensi, pelacakan, dan ekstensi.
public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
- Warisan
-
WorkflowInstance
- Turunan
Keterangan
WorkflowInstance adalah utas tunggal dan mengasumsikan bahwa host menyinkronkan semua akses ke dalamnya. Upaya untuk memanggil beberapa API secara bersamaan akan mengakibatkan dilemparkan InvalidOperationException .
Secara internal, memiliki WorkflowInstance dua status: Berjalan dan Dijeda. Satu-satunya cara untuk menyebabkan runtime transisi dari dijeda ke berjalan adalah dengan memanggil Run. Semua tindakan (kecuali Jeda) hanya dapat diambil saat runtime dijeda. Runtime akan menjadi dijeda secara spontan dalam situasi berikut:
Terjadi kesalahan fatal pada runtime. Host akan diberi sinyal melalui OnRequestAbort (yang tidak menandakan transisi ke Dijeda) dan kemudian diberi tahu melalui OnNotifyPaused.
Pengecualian dalam alur kerja tidak diajarkan dan lolos dari akar. Host akan diberi tahu melalui OnNotifyUnhandledException metode .
Penjadwal telah kehabisan item kerja dan sekarang Idle. Host akan diberi tahu melalui OnNotifyPaused metode . Perhatikan bahwa penjadwal mungkin kehabisan item kerja karena instans tidak aktif atau karena instans selesai. Nilai StateController properti dapat digunakan untuk membedakan antara keduanya.
Host dapat meminta perubahan dari Berjalan ke Dijeda dengan memanggil RequestPause metode atau PauseWhenPersistable instans yang WorkflowInstance.WorkflowInstanceControl dikembalikan oleh Controller properti . Permintaan ini tidak boleh dianggap memiliki respons tertentu yang berarti bahwa host tidak boleh mencoba menghubungkan OnNotify* atau OnRequestAbort dengan panggilan tertentu untuk menjeda. Menanggapi permintaan jeda, runtime dapat beralih ke Dijeda dan memanggil OnNotifyPaused saat penjadwal masih memiliki item kerja yang tertunda. Nilai StateController properti dapat digunakan untuk menentukan apakah penjadwal tidak memiliki pekerjaan lagi atau terganggu oleh permintaan untuk menjeda.
Metode RequestPause instans yang WorkflowInstance.WorkflowInstanceControl dikembalikan oleh Controller properti adalah satu-satunya metode yang dapat dipanggil saat WorkflowInstance berada dalam status Berjalan. Semua metode lain akan melempar jika InvalidOperationException dipanggil. Mengingat aturan tentang bagaimana WorkflowInstance transisi dari satu status ke status lain, gagasan publik tentang Berjalan dan Dijeda dapat didefinisikan sebagai berikut:
Berjalan - Status antara panggilan ke Run dan WorkflowInstance berikutnya.OnNotify*.
Dijeda - Status antara WorkflowInstance.OnNotify* terakhir dan panggilan berikutnya ke Run.
Konstruktor
| Nama | Deskripsi |
|---|---|
| WorkflowInstance(Activity, WorkflowIdentity) |
Menginisialisasi instans WorkflowInstance baru kelas dengan definisi alur kerja dan identitas definisi yang ditentukan. |
| WorkflowInstance(Activity) |
Menginisialisasi instans WorkflowInstance baru kelas dengan definisi alur kerja yang ditentukan. |
Properti
| Nama | Deskripsi |
|---|---|
| Controller |
Mendapatkan instans WorkflowInstance.WorkflowInstanceControl untuk ini WorkflowInstance. |
| DefinitionIdentity |
Mendapatkan atau mengatur identitas definisi .WorkflowInstance |
| HostEnvironment |
Mendapatkan atau mengatur lingkungan akar untuk argumen dan variabel instans alur kerja. |
| Id |
Mendapatkan pengidentifikasi unik untuk instans alur kerja. |
| IsReadOnly |
Mendapatkan nilai yang menunjukkan apakah instans alur kerja telah diinisialisasi. |
| SupportsInstanceKeys |
Mendapatkan nilai yang menunjukkan apakah host mendukung asosiasi InstanceKeys dengan instans run-time. |
| SynchronizationContext |
Mendapatkan atau mengatur yang SynchronizationContext digunakan untuk menjadwalkan instans alur kerja. |
| WorkflowDefinition |
Mendapatkan definisi alur kerja dari instans alur kerja. |
Metode
| Nama | Deskripsi |
|---|---|
| BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object) |
Dipanggil oleh runtime alur kerja untuk mulai mengirim rekaman pelacakan yang tertunda untuk melacak peserta secara asinkron. |
| DisposeExtensions() |
Dispose() Panggilan pada semua ekstensi yang mengimplementasikan IDisposable. |
| EndFlushTrackingRecords(IAsyncResult) |
Dipanggil oleh runtime alur kerja untuk mengakhiri operasi trek. |
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| FlushTrackingRecords(TimeSpan) |
Dipanggil oleh runtime alur kerja untuk mengirim rekaman pelacakan yang tertunda ke peserta pelacakan. |
| GetActivitiesBlockingUpdate(Object, DynamicUpdateMap) |
Mengambil daftar aktivitas yang memblokir pembaruan alur kerja. |
| GetExtension<T>() |
Mengembalikan ekstensi dari jenis yang ditentukan. |
| GetExtensions<T>() |
Mengembalikan semua ekstensi yang ditemukan untuk jenis yang ditentukan. |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| Initialize(IDictionary<String,Object>, IList<Handle>) |
Dipanggil oleh host untuk menginisialisasi instans alur kerja dengan nilai argumen dan properti eksekusi. |
| Initialize(Object, DynamicUpdateMap) |
Dipanggil oleh host untuk menginisialisasi instans alur kerja dengan status run-time alur kerja dan memperbarui peta. |
| Initialize(Object) |
Dipanggil oleh host untuk menginisialisasi instans alur kerja dengan status run-time alur kerja. |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa kunci instans baru harus dikaitkan dengan instans ini. |
| OnBeginFlushTrackingRecords(AsyncCallback, Object) |
Panggilan asinkron untuk meminta host menghapus rekaman pelacakan yang tertunda ke peserta pelacakan. |
| OnBeginPersist(AsyncCallback, Object) |
Panggilan asinkron untuk meminta host mempertahankan alur kerja. |
| OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa operasi resume bookmark dimulai. |
| OnDisassociateKeys(ICollection<InstanceKey>) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa sekumpulan kunci instans tertentu tidak boleh lagi dikaitkan dengan instans ini. |
| OnEndAssociateKeys(IAsyncResult) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa operasi kunci terkait selesai. |
| OnEndFlushTrackingRecords(IAsyncResult) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host ketika operasi rekaman pelacakan flush selesai. |
| OnEndPersist(IAsyncResult) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa operasi persisten selesai. |
| OnEndResumeBookmark(IAsyncResult) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa operasi resume bookmark selesai. |
| OnNotifyPaused() |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa instans alur kerja telah beralih dari status berjalan ke status dijeda. |
| OnNotifyUnhandledException(Exception, Activity, String) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host pengecualian yang tidak tertangani telah terjadi dalam instans alur kerja. |
| OnRequestAbort(Exception) |
Dipanggil oleh runtime alur kerja untuk memberi tahu host bahwa operasi pembatalan telah diminta untuk instans alur kerja. |
| RegisterExtensionManager(WorkflowInstanceExtensionManager) |
Dipanggil oleh host untuk mendaftarkan manajer ekstensi yang ditentukan, memvalidasi bahwa semua ekstensi yang diperlukan ada, dan untuk menginisialisasi kumpulan ekstensi yang akan digunakan. |
| ThrowIfReadOnly() |
Melempar jika instans alur kerja telah diinisialisasi, seperti yang InvalidOperationException ditentukan oleh IsReadOnly. |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |