Freigeben über


WorkflowInstance.Unload Methode

Definition

Entlädt die Workflowinstanz aus dem Arbeitsspeicher in den Persistenzspeicher. Dieser Aufruf wird so lange blockiert, bis die derzeit geplante Arbeit beendet bzw. das Ende des Transaktionsumfangs erreicht ist.

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

Ausnahmen

Für die Workflowruntime-Engine ist kein Persistenzdienst registriert.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie Unload für ein WorkflowInstance-Objekt aufrufen.

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

Hinweise

UnloadDas Entladen verläuft synchron. Das heißt, die Rückgabe erfolgt, nachdem alle auszuführenden Aktionen abgeschlossen sind. Wenn sich die Workflowinstanz nicht im Leerlauf befindet, wartet die Laufzeit, bis die Instanz unterbrochen werden kann. Eine Instanz kann nur unterbrochen werden, nachdem die Bearbeitung des geplanten Arbeitsschritts abgeschlossen ist. In der Regel ist dies der Fall, wenn die momentan ausgeführte Aktivität von der Execute-Methode zurückgegeben wird. Wenn die Instanz jedoch eine TransactionScopeActivity ausführt, muss der Transaktionsumfang die Ausführung abschließen, bevor die Instanz unterbrochen werden kann. Der Entladevorgang verwendet dann den Persistenzdienst, um die Workflowinstanz aus dem Arbeitsspeicher zu entfernen, und behält sie in einem Datenspeicher bei. Wenn für WorkflowRuntime kein Persistenzdienst registriert ist, löst Unload eine InvalidOperationException aus. Wenn die Workflowinstanz erfolgreich beibehalten wird, löst die Laufzeit das WorkflowUnloaded-Ereignis aus.

Der Host kann Unload verwenden, um Systemressourcen eines im Leerlauf befindlichen Workflows freizugeben.

Gilt für: