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
- AddInAdapter.cs
- DefaultValueTypeConverter.cs
- DynamicRenderer.cs
- DoubleUtil.cs
- HtmlControl.cs
- Ipv6Element.cs
- PointCollectionConverter.cs
- HttpWebRequest.cs
- SystemMulticastIPAddressInformation.cs
- AttributeSetAction.cs
- DispatcherSynchronizationContext.cs
- StsCommunicationException.cs
- ReferentialConstraint.cs
- BrushMappingModeValidation.cs
- MissingManifestResourceException.cs
- BitmapVisualManager.cs
- controlskin.cs
- GestureRecognizer.cs
- unsafeIndexingFilterStream.cs
- SqlInternalConnectionSmi.cs
- VisualStateGroup.cs
- ResizeGrip.cs
- MessageSmuggler.cs
- SqlDataSourceFilteringEventArgs.cs
- ValidationSummary.cs
- SchemaElement.cs
- Certificate.cs
- RuntimeHandles.cs
- TemplateKey.cs
- FormsAuthentication.cs
- HybridDictionary.cs
- AllMembershipCondition.cs
- WizardStepBase.cs
- PathFigureCollection.cs
- AuthenticatingEventArgs.cs
- EdgeModeValidation.cs
- ResXResourceSet.cs
- BindableAttribute.cs
- WmfPlaceableFileHeader.cs
- StaticExtension.cs
- BrushValueSerializer.cs
- FixedDocument.cs
- TraceUtility.cs
- RijndaelManagedTransform.cs
- StoreItemCollection.cs
- ConnectionStringsExpressionBuilder.cs
- SqlVersion.cs
- OracleSqlParser.cs
- TextServicesDisplayAttribute.cs
- TemplateKey.cs
- RelationalExpressions.cs
- ExpressionBindings.cs
- IProvider.cs
- LocalizationParserHooks.cs
- OracleDataReader.cs
- DecoderReplacementFallback.cs
- MessageSecurityOverMsmq.cs
- DataListComponentEditor.cs
- XmlNamespaceDeclarationsAttribute.cs
- WhitespaceReader.cs
- OrderedParallelQuery.cs
- BindingNavigator.cs
- LoadedEvent.cs
- RewritingProcessor.cs
- IteratorAsyncResult.cs
- HGlobalSafeHandle.cs
- EditorAttribute.cs
- MetadataArtifactLoaderCompositeFile.cs
- CalendarDesigner.cs
- MutexSecurity.cs
- ApplicationDirectoryMembershipCondition.cs
- IImplicitResourceProvider.cs
- FieldDescriptor.cs
- ComplexPropertyEntry.cs
- DynamicILGenerator.cs
- InfoCardUIAgent.cs
- HitTestWithGeometryDrawingContextWalker.cs
- IndexerNameAttribute.cs
- FastEncoderWindow.cs
- ReachDocumentReferenceSerializer.cs
- DataRowCollection.cs
- CqlErrorHelper.cs
- OptimizerPatterns.cs
- ImageAnimator.cs
- SafeSerializationManager.cs
- WindowCollection.cs
- AnimationStorage.cs
- BrowserCapabilitiesCompiler.cs
- _BaseOverlappedAsyncResult.cs
- WmlValidationSummaryAdapter.cs
- DoubleAnimationClockResource.cs
- XPathMultyIterator.cs
- ReadOnlyObservableCollection.cs
- Event.cs
- PlatformNotSupportedException.cs
- FunctionUpdateCommand.cs
- WinInetCache.cs
- PowerModeChangedEventArgs.cs
- TextDecorationCollection.cs
- ICollection.cs