Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / Sequence.cs / 1305376 / Sequence.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities; using System.Activities.Validation; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Runtime.Collections; using System.Windows.Markup; [ContentProperty("Activities")] public sealed class Sequence : NativeActivity { Collectionactivities; Collection variables; Variable lastIndexHint; CompletionCallback onChildComplete; public Sequence() : base() { this.lastIndexHint = new Variable (); this.onChildComplete = new CompletionCallback(InternalExecute); } public Collection Variables { get { if (this.variables == null) { this.variables = new ValidatingCollection { // disallow null values OnAddValidationCallback = item => { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } } }; } return this.variables; } } [DependsOn("Variables")] public Collection Activities { get { if (this.activities == null) { this.activities = new ValidatingCollection { // disallow null values OnAddValidationCallback = item => { if (item == null) { throw FxTrace.Exception.ArgumentNull("item"); } } }; } return this.activities; } } protected override void CacheMetadata(NativeActivityMetadata metadata) { metadata.SetChildrenCollection(this.Activities); metadata.SetVariablesCollection(this.Variables); metadata.AddImplementationVariable(this.lastIndexHint); } protected override void Execute(NativeActivityContext context) { if (this.activities != null && this.Activities.Count > 0) { Activity nextChild = this.Activities[0]; context.ScheduleActivity(nextChild, this.onChildComplete); } } void InternalExecute(NativeActivityContext context, ActivityInstance completedInstance) { int completedInstanceIndex = this.lastIndexHint.Get(context); if (completedInstanceIndex >= this.Activities.Count || this.Activities[completedInstanceIndex] != completedInstance.Activity) { completedInstanceIndex = this.Activities.IndexOf(completedInstance.Activity); } int nextChildIndex = completedInstanceIndex + 1; if (nextChildIndex == this.Activities.Count) { return; } Activity nextChild = this.Activities[nextChildIndex]; context.ScheduleActivity(nextChild, this.onChildComplete); this.lastIndexHint.Set(context, nextChildIndex); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ByteConverter.cs
- Root.cs
- Permission.cs
- ImageInfo.cs
- NonVisualControlAttribute.cs
- TypeDelegator.cs
- MonthChangedEventArgs.cs
- EmptyQuery.cs
- ConditionChanges.cs
- basemetadatamappingvisitor.cs
- ScaleTransform.cs
- LogSwitch.cs
- bindurihelper.cs
- COM2ExtendedBrowsingHandler.cs
- OdbcParameter.cs
- EditCommandColumn.cs
- HtmlInputFile.cs
- XmlTextReaderImplHelpers.cs
- PolyBezierSegment.cs
- BoundColumn.cs
- ManifestResourceInfo.cs
- DesignerActionMethodItem.cs
- CharacterMetricsDictionary.cs
- Figure.cs
- ComponentResourceManager.cs
- LockCookie.cs
- ReverseInheritProperty.cs
- ToolStripProgressBar.cs
- LinqDataSource.cs
- LineMetrics.cs
- IndentTextWriter.cs
- SQLBytesStorage.cs
- PasswordPropertyTextAttribute.cs
- ConnectionStringsExpressionBuilder.cs
- arclist.cs
- CopyOfAction.cs
- AuthenticationModuleElementCollection.cs
- TimeIntervalCollection.cs
- TouchFrameEventArgs.cs
- SqlUtil.cs
- PathSegmentCollection.cs
- SafeNativeMethods.cs
- ellipse.cs
- UnmanagedMemoryStream.cs
- RouteItem.cs
- ItemsPresenter.cs
- EntityKeyElement.cs
- BindingGraph.cs
- SamlAuthenticationStatement.cs
- RuntimeArgumentHandle.cs
- BinaryMethodMessage.cs
- DefinitionBase.cs
- EventsTab.cs
- ResourceDisplayNameAttribute.cs
- OpenTypeLayout.cs
- BitmapFrameDecode.cs
- SoapAttributeAttribute.cs
- precedingsibling.cs
- LineVisual.cs
- WindowsSolidBrush.cs
- Size3DValueSerializer.cs
- CompilerGlobalScopeAttribute.cs
- PointAnimationClockResource.cs
- SqlCacheDependencySection.cs
- HttpDebugHandler.cs
- GridViewDeletedEventArgs.cs
- ValueQuery.cs
- StrongName.cs
- TextRangeEdit.cs
- ParallelTimeline.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- RbTree.cs
- PlaceHolder.cs
- StringCollection.cs
- VideoDrawing.cs
- UnsettableComboBox.cs
- PrePostDescendentsWalker.cs
- DBDataPermissionAttribute.cs
- XmlDataContract.cs
- XmlSchemaCompilationSettings.cs
- RelatedCurrencyManager.cs
- WeakReferenceEnumerator.cs
- HtmlShim.cs
- WebControlAdapter.cs
- FlowLayoutSettings.cs
- bidPrivateBase.cs
- AutomationPeer.cs
- WebPartDisplayModeCollection.cs
- MetadataItemSerializer.cs
- BigInt.cs
- XmlCharCheckingReader.cs
- ToolStripHighContrastRenderer.cs
- Size3D.cs
- GenericPrincipal.cs
- ActivityExecutionContextCollection.cs
- SignatureDescription.cs
- Oid.cs
- TPLETWProvider.cs
- Bidi.cs
- ServiceCredentialsSecurityTokenManager.cs