Freigeben über


Grundlegendes zum Aktivitätszustandsmodell

Eine Aktivität kann sich während ihrer Lebensdauer in sechs verschiedenen Zuständen befinden. Diese Zustände sind Initialized, Executing, Canceling, Closed, Compensating und Faulting.

Im Verlauf des Initialized-Zustands wurde ActivityExecutionContext für die Aktivität erstellt, und andere Initiierungsdetails, die sich speziell auf diese Aktivität beziehen, wurden ausgeführt. Beispielsweise wird mit bestimmten Windows Workflow Foundation-Aktivitäten wie SuspendActivity überprüft, ob sie während der Initialisierung über eine übergeordnete zusammengesetzte Aktivität verfügen.

Wechselt eine Aktivität in den Executing-Zustand, wird die primäre Funktion dieser Aktivität ausgeführt.

Eine Aktivität wird explizit von einer übergeordneten Aktivität in den Canceling-Zustand versetzt oder weil während der Ausführung dieser Aktivität eine Ausnahme ausgelöst wurde.

Der Closed-Zustand ist der letzte und endgültige Zustand einer Aktivität. Die einzige diesbezügliche Einschränkung besteht darin, dass eine Aktivität im Fall eines erfolgreichen Abschlusses anschließend den auf Geschäftslogik basierenden Compensating-Zustand durchlaufen muss. Die Aktivität wechselt anschließend von Closed zu Compensating und daraufhin zu Closed, sobald die Kompensierungslogik abgeschlossen wurde. Weitere Informationen zur Kompensierung finden Sie unter Verwenden von Kompensierung in Workflows und Verwenden der CompensateActivity-Aktivität.

Wird eine Ausnahme während des Executing-Zustands, des Canceling-Zustands oder des Compensating-Zustands einer Aktivität ausgelöst, wechselt sie in den Faulting-Zustand.

Das folgende Flussdiagramm zeigt an, wie eine Aktivität zwischen den verschiedenen Aktivitätszuständen wechselt.

Diagramm des Aktivitätszustandsmodells

Die durchgehende rote Linie stellt das Workflow-Laufzeitmodul dar, das dafür zuständig ist, den Übergang einer Aktivität vom Initialized-Zustand in den Executing-Zustand oder für den Übergang vom Closed-Zustand in den Compensating-Zustand zu steuern.

Die durchgehende gelbe Linie stellt die übergeordnete Aktivität dar, die dafür zuständig ist, den Übergang einer untergeordneten Aktivität vom Executing-Zustand in den Closed-Zustand zu steuern. Wenn Sie eine benutzerdefinierte zusammengesetzte Aktivität erstellen, müssen Sie diese selbstständig behandeln.

Die durchgehende blaue Linie stellt das Workflow-Laufzeitmodul dar, das dafür zuständig ist, den Übergang einer Aktivität vom Executing-Zustand, vom Canceling-Zustand oder vom Compensating-Zustand in den Faulting-Zustand zu steuern.

Die gepunktete gelbe Linie stellt das Workflow-Laufzeitmodul dar, das dafür zuständig ist, den Übergang einer Aktivität vom Canceling-Zustand, vom Compensating-Zustand oder vom Faulting-Zustand in den Closed-Zustand zu steuern.

Hinweis

Eine Aktivität kann nicht vom Executing-Zustand in den Closed-Zustand wechseln. Bei jedem derartigen Versuch wird vom Aufruf von Execute eine Ausnahme ausgelöst.

Eine Aktivität wird möglicherweise nur dann geschlossen, wenn sich alle untergeordneten Aktivitäten entweder im Closed-Zustand oder im Initialized-Zustand befinden. Da es sich hierbei um eine rekursive Regel handelt, muss die gesamte Struktur unter einer Aktivität, die geschlossen werden soll, Closed oder Initialized sein, damit der Aufruf erfolgreich verläuft.

Siehe auch

Konzepte

Grundlagen des Aktivitätsausführungskontexts

Weitere Ressourcen

Windows Workflow Foundation-Aktivitäten

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.