Поделиться через


WorkflowInstance.Unload Метод

Определение

Выгружает экземпляр рабочего процесса из памяти в хранилище сохраняемости. Этот вызов блокируется до завершения текущих запланированных заданий или до окончания области транзакции.

public:
 void Unload();
public void Unload ();
member this.Unload : unit -> unit
Public Sub Unload ()

Исключения

Отсутствует служба сохраняемости, зарегистрированная механизмом среды выполнения рабочих процессов.

Примеры

В следующем примере показан вызов метода Unload для объекта WorkflowInstance.

// Create a WorkflowRuntime object
WorkflowRuntime workflowRuntime = new WorkflowRuntime();
// Create a new instance of the out-of-box SqlWorkflowPersistenceService
SqlWorkflowPersistenceService persistenceService =
   new SqlWorkflowPersistenceService(
   "Initial Catalog=SqlPersistenceService;Data Source=localhost;Integrated Security=SSPI;");
// Add the service to the runtime
workflowRuntime.AddService(persistenceService);
// Create a WorkflowInstance object
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(typeof(Workflow1));
// Start the workflow instance
workflowInstance.Start();
//Unload the instance
workflowInstance.Unload();
' Create a WorkflowRuntime object
Dim workflowRuntime As New WorkflowRuntime()
' Create a new instance of the out-of-box SqlWorkflowPersistenceService
Dim persistenceService As _
   New SqlWorkflowPersistenceService( _
   "Initial Catalog=SqlPersistenceServiceData Source=localhostIntegrated Security=SSPI")
' Add the service to the runtime
workflowRuntime.AddService(persistenceService)
' Create a WorkflowInstance object
Dim workflowInstance As WorkflowInstance = workflowRuntime.CreateWorkflow(GetType(Workflow1))
' Start the workflow instance
workflowInstance.Start()
'Unload the instance
workflowInstance.Unload()

Комментарии

Метод Unload является синхронным, то есть после завершения выполняемых действий он возвращает управление. Если экземпляр рабочего процесса не бездействует, то среда выполнения будет ожидать возможности его прерывания. Экземпляр может быть прерван только после завершения текущей запланированного рабочего элемента; обычно это происходит, когда выполняемое действие возвращает управление из своего метода Execute. Однако, если экземпляр выполняет действие TransactionScopeActivity, то область транзакции должна завершить выполнение перед тем, как экземпляр сможет быть прерван. После этого метод «Unload» использует службу сохраняемости для удаления экземпляра рабочего процесса из памяти и сохраняет его в хранилище данных. Если служба сохраняемости, зарегистрированная объектом WorkflowRuntime, отсутствует, то метод Unload вызывает исключение InvalidOperationException. Если экземпляр рабочего процесса сохранен успешно, то среда выполнения вызывает событие WorkflowUnloaded.

Узел может использовать метод Unload для освобождения системных ресурсов бездействующего рабочего процесса.

Применяется к