Verwenden von CancellationScope
Dieses Thema gilt für Windows Workflow Foundation 4.
Mit diesem Beispiel wird veranschaulicht, wie die CancellationScope-Aktivität verwendet wird, um die Arbeit in einer Anwendung abzubrechen.
Viele Komponenten und Dienste der mittleren Ebene nutzen das bekannte Programmiermodell der Transaktionen zur Durchführung von Abbruchvorgängen. Es gibt jedoch viele Situationen, in denen Transaktionen nicht verwendet werden können und die Arbeit manuell abgebrochen werden muss. Dies ist schwieriger als das Verwenden von Transaktionen, da die abzubrechende Arbeit erst gefunden werden muss. .NET Framework 4 unterstützt Sie hierbei durch Bereitstellung einer CancellationScope-Aktivität.
Der Abbruch kann innerhalb einer Aktivität oder über das übergeordnete Element einer Aktivität ausgelöst werden. Untergeordnete Aktivitäten werden von der zugehörigen übergeordneten Aktivität (z. B. Sequence, Parallel, Flowchart oder eine benutzerdefinierte zusammengesetzte Aktivität) geplant. Die übergeordnete Aktivität kann untergeordnete Aktivitäten aus jedem beliebigen Grund abbrechen. Beispiel: Eine Parallel-Aktivität mit drei untergeordneten Aktivitäten (Verzweigungen) bricht die verbleibenden Verzweigungen ab, wenn eine Verzweigung abgeschlossen wird und die Auswertung des CompletionCondition-Ausdrucks true ergibt. Der Workflow kann auch extern von der Hostanwendung durch Aufrufen von Cancel abgebrochen werden.
Zur Verwendung der CancellationScope-Aktivität fügen Sie die abzubrechende Arbeit in eine Body-Eigenschaft und die nach dem Abbruchvorgang auszuführende Arbeit in eine CancellationHandler-Eigenschaft ein.
In diesem Beispiel wird das Abbrechen einer Aktivität innerhalb der Aktivität selbst veranschaulicht.
Das im Beispiel zur Veranschaulichung der CancellationScope-Aktivität verwendete Szenario ist ein Kunde, der so schnell wie möglich ein Ticket nach Miami kaufen möchte. Es gibt zwei Reiseagenturen, die das Geschäft abschließen möchten. Für diese Geschäftslogik werden im Beispiel zwei CancellationScope-Elemente innerhalb einer Parallel-Aktivität verwendet. Die CompletionCondition der Parallel-Aktivität wird auf true festgelegt. Da die CompletionCondition nach Abschluss jeder der Verzweigungen geprüft wird, wird nach Abschluss einer Verzweigung die verbleibende Verzweigung abgebrochen. Die Clientanwendung fordert beide Agenturen auf, das Ticket zu kaufen. Sobald eine Agentur den Kauf des Tickets bestätigt, bricht die Anwendung den Auftrag bei der anderen Agentur ab.
So verwenden Sie dieses Beispiel
Öffnen Sie in Visual Studio 2010 die Projektmappendatei "CancelationScopeXAML.sln".
Drücken Sie F6, um die Projektmappe zu erstellen.
Drücken Sie STRG+F5, um die Projektmappe auszuführen.
Hinweis: |
---|
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.
<Installationslaufwerk>:\WF_WCF_Samples
Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.
<Installationslaufwerk>:\WF_WCF_Samples\WF\Basic\Built-InActivities\CancellationScope
|