WorkflowRuntime.StartRuntime Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İş akışı çalışma zamanı altyapısını ve iş akışı çalışma zamanı altyapısı hizmetlerini başlatır.
public:
void StartRuntime();
public void StartRuntime ();
member this.StartRuntime : unit -> unit
Public Sub StartRuntime ()
Özel durumlar
Bu WorkflowRuntimeile kayıtlı birden fazla hizmet iş akışı CommitWorkBatch
hizmeti var.
-veya-
Bu ile WorkflowRuntimekayıtlı birden fazla zamanlayıcı hizmeti var.
-veya-
Bu WorkflowRuntimeile kaydedilen birden fazla kalıcılık hizmeti var.
Örnekler
Aşağıdaki kod örneği, bir iş akışı konağından işlevselliğin nasıl kullanılacağını WorkflowRuntime gösterir. Kod, örneği WorkflowRuntime oluşturup çalışma zamanına WorkflowRuntime hizmet eklemek için çağrısı yaptıktan sonra öğesini çağırır StartRuntimeAddService. Ayrıca, başka bir işlem gerçekleşmeden önce de çağırır StartRuntime .
Bu kod örneği, İş Akışı İptal Etme örneğinin bir parçasıdır.
static void Main()
{
string connectionString = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;";
using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
{
ExternalDataExchangeService dataService = new ExternalDataExchangeService();
workflowRuntime.AddService(dataService);
dataService.AddService(expenseService);
workflowRuntime.AddService(new SqlWorkflowPersistenceService(connectionString));
workflowRuntime.StartRuntime();
workflowRuntime.WorkflowCompleted += OnWorkflowCompleted;
workflowRuntime.WorkflowTerminated += OnWorkflowTerminated;
workflowRuntime.WorkflowIdled += OnWorkflowIdled;
workflowRuntime.WorkflowAborted += OnWorkflowAborted;
Type type = typeof(SampleWorkflow1);
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
workflowInstance.Start();
waitHandle.WaitOne();
workflowRuntime.StopRuntime();
}
}
Shared Sub Main()
Dim connectionString As String = "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;"
Using workflowRuntime As New WorkflowRuntime()
Dim dataService As New ExternalDataExchangeService()
workflowRuntime.AddService(dataService)
dataService.AddService(expenseService)
workflowRuntime.AddService(New SqlWorkflowPersistenceService(connectionString))
AddHandler workflowRuntime.WorkflowCompleted, AddressOf OnWorkflowCompleted
AddHandler workflowRuntime.WorkflowTerminated, AddressOf OnWorkflowTerminated
AddHandler workflowRuntime.WorkflowIdled, AddressOf OnWorkflowIdled
AddHandler workflowRuntime.WorkflowAborted, AddressOf OnWorkflowAborted
Dim workflowInstance As WorkflowInstance
workflowInstance = workflowRuntime.CreateWorkflow(GetType(SampleWorkflow))
workflowInstance.Start()
waitHandle.WaitOne()
workflowRuntime.StopRuntime()
End Using
End Sub
Açıklamalar
Bu yöntem geçerli bir çekirdek hizmet kümesinin mevcut olduğunu doğrular ve ardından sınıfından WorkflowRuntimeService türetilen tüm hizmetleri başlatır. Aşağıdaki temel hizmetlerden biri ve yalnızca biri olmalıdır: temel sınıftan WorkflowCommitWorkBatchService türetilen bir iş akışı CommitWorkBatch
hizmeti ve temel sınıftan WorkflowSchedulerService türetilen bir zamanlayıcı hizmeti. Bu temel hizmetlerden biri veya her ikisi de eksikse, iş akışı çalışma zamanı altyapısı uygun varsayılan hizmeti sağlar: DefaultWorkflowCommitWorkBatchService iş akışı CommitWorkBatch
hizmeti ve DefaultWorkflowSchedulerService zamanlayıcı hizmeti için. Kalıcılık hizmeti isteğe bağlıdır, ancak en fazla bir kalıcılık hizmeti olabilir. Hizmet yapılandırmasını doğruladıktan sonra sınıfından StartRuntime türetilen WorkflowRuntimeService tüm hizmetleri çağırırStart. Son olarak, iş akışı çalışma zamanı altyapısı olayı ayarlar IsStarted ve tetikler Started .
İş akışı çalışma zamanı altyapısı başlatıldıktan sonra temel hizmetleri ekleyemez veya kaldıramazsınız. Temel hizmetler sınıfından, sınıfından WorkflowSchedulerService , sınıfından WorkflowCommitWorkBatchService veya sınıfından WorkflowPersistenceService türetilen hizmetlerdir TrackingService . İş akışı çalışma zamanı altyapısı çalışırken çağrısı StartRuntime yaparsanız hiçbir eylem gerçekleştirilmez.