Synchronisierungsbeispiel
Dieses Beispiel veranschaulicht die Erstellung eines Workflows, mit dem die Ausführung von Aktivitätsgruppen synchronisiert wird. Dies ist beispielsweise zum Synchronisieren des Zugriffs auf eine gemeinsam verwendete Ressource nützlich.
Der synchronisierte Datenzugriff ist ein wichtiger Aspekt zusammengesetzter Aktivitäten, wie zum Beispiel ParallelActivity, ReplicatorActivity und ConditionedActivityGroup, die über parallele Ausführungspfade verfügen.
In diesem Beispiel verfügt der Workflow über eine ParallelActivity mit zwei Verzweigungen. Jede Verzweigung enthält eine SynchronizationScopeActivity-Aktivität. Zwei CodeActivity-Aktivitäten in jeder Verzweigung versuchen, eine Workflowinstanzzählung zu erhöhen oder zu verringern. Die eine Codeverzweigung (count++) erhöht, während die andere Codeverzweigung (count--) verringert.
Die beiden SynchronizedScope-Instanzen werden synchronisiert, da sie in der SynchronizationHandles-Eigenschaft über einen gemeinsamen Wert verfügen, "syncMutex". Hierdurch wird sichergestellt, dass die erste SynchronizedScope-Aktivität, sobald sie gestartet wurde, zunächst beendet wird, bevor die andere SynchronizedScope-Aktivität beginnen kann. Obwohl dies nicht zu einer Änderung des endgültigen Werts im Feld "count" für dieses einfache Beispiel führt, hat dies trotzdem Auswirkungen auf die temporären Werte. Um das Verhalten ohne Synchronisierung zu beobachten, ändern Sie den Wert der SynchronizationHandles-Eigenschaft für einen der SynchronizedScopes, sodass die beiden SynchronizedScopes nicht mehr synchronisiert sind.
Wenn Sie das Beispiel erstellen und ausführen, erhalten Sie eine Ausgabe ähnlich der folgenden:
So erstellen Sie das Beispiel
Laden Sie das Beispiel herunter, indem Sie in diesem Thema auf Beispiel downloaden klicken.
Hierdurch wird das Beispielprojekt auf die lokale Festplatte extrahiert.
Klicken Sie auf Start, zeigen Sie auf Programme, zeigen Sie auf Microsoft Windows SDK, und klicken Sie dann auf CMD Shell.
Wechseln Sie zum Quellverzeichnis des Beispiels.
Geben Sie an der Eingabeaufforderung MSBUILD <Name der Projektmappendatei> ein.
So führen Sie das Beispiel aus
- Führen Sie im Eingabeaufforderungsfenster des SDKs die EXE-Datei im Ordner Synchronized\bin\debug aus (bzw. im Ordner Synchronized\bin für die VB-Version des Beispiels), der sich unter dem Hauptordner des Beispiels befindet.
Siehe auch
Referenz
ParallelActivity
ReplicatorActivity
ConditionedActivityGroup
SynchronizationScopeActivity
Weitere Ressourcen
Using the ParallelActivity Activity
Using the ReplicatorActivity Activity
Using the ConditionedActivityGroup Activity
Using the SynchronizationScopeActivity Activity
Beispiele für Aktivitäten
Windows Workflow Foundation-Beispiele
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.