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
- TypeExtensionConverter.cs
- dsa.cs
- EmbeddedMailObjectsCollection.cs
- CultureNotFoundException.cs
- ProcessInfo.cs
- BufferModesCollection.cs
- formatter.cs
- TrustManagerMoreInformation.cs
- DelegatingTypeDescriptionProvider.cs
- QueryContinueDragEventArgs.cs
- LexicalChunk.cs
- DataGridViewCellParsingEventArgs.cs
- MimeFormReflector.cs
- DataGridPageChangedEventArgs.cs
- PropertyMapper.cs
- DataGridAddNewRow.cs
- BrowserTree.cs
- ImageClickEventArgs.cs
- TrackPointCollection.cs
- PageParserFilter.cs
- SoapBinding.cs
- TableAutomationPeer.cs
- CompensatableTransactionScopeActivityDesigner.cs
- LiteralControl.cs
- RewritingPass.cs
- Track.cs
- OutputWindow.cs
- Calendar.cs
- TextWriterTraceListener.cs
- RemotingAttributes.cs
- UseManagedPresentationBindingElementImporter.cs
- PageClientProxyGenerator.cs
- HandlerBase.cs
- MulticastDelegate.cs
- NonParentingControl.cs
- EntityDataReader.cs
- Int32KeyFrameCollection.cs
- MulticastDelegate.cs
- IISMapPath.cs
- MessageContractImporter.cs
- TextPointerBase.cs
- DrawingCollection.cs
- FontNamesConverter.cs
- XmlSerializerNamespaces.cs
- GeometryDrawing.cs
- SerializerDescriptor.cs
- DeadCharTextComposition.cs
- System.Data_BID.cs
- HttpCapabilitiesEvaluator.cs
- ExpandableObjectConverter.cs
- DataChangedEventManager.cs
- Stream.cs
- ListViewGroupConverter.cs
- _StreamFramer.cs
- XamlDesignerSerializationManager.cs
- TextElementEnumerator.cs
- KeysConverter.cs
- PenCursorManager.cs
- ExtendedPropertiesHandler.cs
- SqlReferenceCollection.cs
- Dynamic.cs
- ControlParameter.cs
- ServiceHttpModule.cs
- FormViewPageEventArgs.cs
- TaskHelper.cs
- MultilineStringConverter.cs
- PropertyFilterAttribute.cs
- ProxyAttribute.cs
- SiteMapNodeItem.cs
- SplineKeyFrames.cs
- BrowserCapabilitiesFactory35.cs
- TreeIterators.cs
- CompilerError.cs
- OptionUsage.cs
- XmlSerializationGeneratedCode.cs
- MappingSource.cs
- glyphs.cs
- Function.cs
- XPathNodeHelper.cs
- GetPageCompletedEventArgs.cs
- _FtpDataStream.cs
- DomNameTable.cs
- OdbcFactory.cs
- FieldMetadata.cs
- behaviorssection.cs
- CfgRule.cs
- altserialization.cs
- TransactionContext.cs
- XmlReaderSettings.cs
- ParserStreamGeometryContext.cs
- DecimalAnimation.cs
- WmlPhoneCallAdapter.cs
- VerificationException.cs
- InvariantComparer.cs
- SoapObjectWriter.cs
- AssemblyInfo.cs
- GridItemCollection.cs
- ImportCatalogPart.cs
- PageEventArgs.cs
- NativeMethods.cs