WorkflowInstance.Unload Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Descarga la instancia de flujo de trabajo desde la memoria al almacén de persistencia. Esta llamada se bloquea hasta que finalice el trabajo actualmente programado o hasta el final de un ámbito de transacción.
public:
void Unload();
public void Unload ();
member this.Unload : unit -> unit
Public Sub Unload ()
Excepciones
No hay ningún servicio de persistencia registrado con el motor en tiempo de ejecución de flujo de trabajo.
Ejemplos
En el siguiente ejemplo se muestra cómo llamar Unload en un objeto 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()
Comentarios
Unload es sincrónica; es decir, se devuelve después de completar cualquier acción que realice. Si la instancia de flujo de trabajo no está inactiva, el motor en tiempo de ejecución espera hasta que se pueda interrumpir la instancia. Sólo se puede interrumpir una instancia una vez finalizado el elemento de trabajo actualmente programado. Generalmente, esto se produce cuando la Actividad actualmente en ejecución vuelve de su método Execute. Sin embargo, si la instancia está ejecutando una TransactionScopeActivity, el ámbito de transacción debe completar la ejecución antes de que se pueda interrumpir la instancia. A continuación, la descarga utiliza el servicio de persistencia para quitar la instancia de flujo de trabajo de la memoria y lo conserva en un almacén de datos. Si no hay ningún servicio de persistencia registrado con WorkflowRuntime, Unload inicia InvalidOperationException. Si se conserva la instancia de flujo de trabajo correctamente, el tiempo de ejecución genera el evento WorkflowUnloaded.
El host puede utilizar Unload para reclamar los recursos del sistema de un flujo de trabajo inactivo.