同步化範例
這個範例會示範如何撰寫同步化活動群組之執行的工作流程。對於像是同步存取共用資源的情況,這個工作流程相當有用。
對於具有平行執行路徑的 ParallelActivity、ReplicatorActivity 和 ConditionedActivityGroup 諸類的複合活動,同步化資料存取是重要的考量因素。
在此範例中,工作流程具有包含兩個分支的 ParallelActivity。每個分支都包含 SynchronizationScopeActivity 活動。每個分支中的兩個 CodeActivity 活動會嘗試遞增和遞減工作流程執行個體計數。一個程式碼分支會遞增 (count++),而另一個程式碼分支則會遞減 (count--)。
兩個 SynchronizedScope 執行個體會進行同步化,因為它們的 SynchronizationHandle 屬性會共用 "syncMutex" 這個相同值。這樣可確保在第一個 SynchronizedScope 活動開始執行時,此活動必須先完成,另一個 SynchronizedScope 才能開始。儘管這樣並不會變更此簡單範例中 "count" 欄位的最終值,卻會影響到中繼值。若要查看不含同步處理的行為,請變更其中一個 SynchronizedScope 上的 SynchronizationHandle 屬性值,使這兩個 SynchronizedScope 不再同步。
當您建置及執行此範例時,您的輸出將與下面類似:
若要建置範例
按一下此主題中的 [下載範例] 來下載範例。
這樣便會將範例專案擷取到本機硬碟上。
按一下 [開始],並依序指向 [程式集] 和 [Microsoft Windows SDK],再按一下 [CMD 殼層]。
移至範例的來源目錄。
在命令提示字元上,輸入 MSBUILD <Solution file name>。
執行範例
- 在 [SDK 命令提示字元] 視窗中,執行 Synchronized\bin\debug 資料夾 (若是範例的 VB 版本,則是 Synchronized\bin 資料夾) 中的 .exe 檔案,該資料夾位於此範例的主要資料夾下方。
請參閱
參考
ParallelActivity
ReplicatorActivity
ConditionedActivityGroup
SynchronizationScopeActivity
其他資源
Using the ParallelActivity Activity
Using the ReplicatorActivity Activity
Using the ConditionedActivityGroup Activity
Using the SynchronizationScopeActivity Activity
活動範例
Windows Workflow Foundation 範例
Copyright © 2007 by Microsoft Corporation. All rights reserved.