Partilhar via


WorkflowInstance.Unload Método

Definição

Descarrega a instância de fluxo de trabalho da memória para o repositório de persistência. Essa chamada fica bloqueada até a conclusão do trabalho agendado no momento ou até o final de um escopo de transação.

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

Exceções

Não há nenhum serviço de persistência registrado no mecanismo de runtime de fluxo de trabalho.

Exemplos

O exemplo a seguir demonstra a chamada Unload em um WorkflowInstance objeto .

// 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()

Comentários

Unload é síncrono; ou seja, ele retorna depois de concluir qualquer ação executada. Se a instância de fluxo de trabalho não estiver ociosa, o runtime aguardará até que a instância possa ser interrompida. Uma instância só pode ser interrompida após a conclusão do item de trabalho agendado no momento; isso normalmente ocorre quando a Atividade em execução retorna de seu Execute método. No entanto, se a instância estiver executando um TransactionScopeActivity, o escopo da transação deverá concluir a execução antes que a instância possa ser interrompida. Unload, em seguida, usa o serviço de persistência para remover a instância de fluxo de trabalho da memória e persiste-a em um armazenamento de dados. Se não houver nenhum serviço de persistência registrado com o WorkflowRuntime, Unload gerará um InvalidOperationException. Se a instância de fluxo de trabalho for mantida com êxito, o runtime aciona o WorkflowUnloaded evento.

O host pode usar Unload para recuperar recursos do sistema de um fluxo de trabalho ocioso.

Aplica-se a