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
- PathFigureCollectionConverter.cs
- EncodingDataItem.cs
- NonDualMessageSecurityOverHttp.cs
- SqlWebEventProvider.cs
- CompositeDataBoundControl.cs
- PeerNameRegistration.cs
- FontWeightConverter.cs
- ConnectionPoolRegistry.cs
- PackWebRequest.cs
- TextServicesManager.cs
- DataGridViewTextBoxEditingControl.cs
- _Events.cs
- TextPatternIdentifiers.cs
- PartDesigner.cs
- TypeDescriptionProvider.cs
- GridItem.cs
- PnrpPeerResolverElement.cs
- WindowsMenu.cs
- PropertySet.cs
- InputManager.cs
- BoundField.cs
- PropertyStore.cs
- DynamicILGenerator.cs
- OutOfProcStateClientManager.cs
- TextRunTypographyProperties.cs
- SqlConnectionFactory.cs
- BulletedList.cs
- ViewStateException.cs
- KnownTypesHelper.cs
- WeakRefEnumerator.cs
- SizeKeyFrameCollection.cs
- LicenseContext.cs
- OdbcTransaction.cs
- RightsManagementManager.cs
- HostedBindingBehavior.cs
- WindowsBrush.cs
- PersonalizablePropertyEntry.cs
- WebResponse.cs
- PassportAuthenticationModule.cs
- AppDomainGrammarProxy.cs
- WaitForChangedResult.cs
- CompareInfo.cs
- EntityCommandExecutionException.cs
- RSAProtectedConfigurationProvider.cs
- WebPartUtil.cs
- NativeMethods.cs
- FormattedTextSymbols.cs
- PropertyPathConverter.cs
- DeclarativeConditionsCollection.cs
- DataControlFieldCollection.cs
- FloatMinMaxAggregationOperator.cs
- TextEffect.cs
- UnknownBitmapEncoder.cs
- XmlNamespaceManager.cs
- PrivateFontCollection.cs
- CardSpaceException.cs
- TextParagraphCache.cs
- SqlClientWrapperSmiStream.cs
- ISCIIEncoding.cs
- ObjectTag.cs
- AssemblyFilter.cs
- RootBuilder.cs
- PostBackOptions.cs
- Partitioner.cs
- WebPartAuthorizationEventArgs.cs
- dsa.cs
- XmlWrappingReader.cs
- TextViewSelectionProcessor.cs
- LookupNode.cs
- RawUIStateInputReport.cs
- ISAPIApplicationHost.cs
- AspNetPartialTrustHelpers.cs
- UITypeEditor.cs
- RoutedEventConverter.cs
- LinearQuaternionKeyFrame.cs
- ToolStripDropDownMenu.cs
- ScrollChrome.cs
- TextRunCache.cs
- CustomAssemblyResolver.cs
- AnnotationAdorner.cs
- SecurityState.cs
- OdbcConnection.cs
- AttributeQuery.cs
- DateTimeConstantAttribute.cs
- EtwTrackingBehavior.cs
- _ConnectOverlappedAsyncResult.cs
- CombinedGeometry.cs
- MouseEventArgs.cs
- AttributedMetaModel.cs
- DataGridViewCellFormattingEventArgs.cs
- TimeZone.cs
- SessionParameter.cs
- GACIdentityPermission.cs
- Wizard.cs
- OleAutBinder.cs
- MinMaxParagraphWidth.cs
- ObjectStateEntry.cs
- WebControlAdapter.cs
- SByteStorage.cs
- RtfControlWordInfo.cs