WorkflowInstance.Unload Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.