Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / EventRouteFactory.cs / 1305600 / EventRouteFactory.cs
using System; using System.Windows; using MS.Utility; namespace System.Windows { ////// Creates and recycles instance of EventRoute /// internal static class EventRouteFactory { #region Operations ////// Fetch a recycled object if available /// else create a new instance /// internal static EventRoute FetchObject(RoutedEvent routedEvent) { EventRoute eventRoute = Pop(); if (eventRoute == null) { eventRoute = new EventRoute(routedEvent); } else { eventRoute.RoutedEvent = routedEvent; } return eventRoute; } ////// Recycle the given instance of EventRoute /// internal static void RecycleObject(EventRoute eventRoute) { // Cleanup all refernces held eventRoute.Clear(); // Push instance on to the stack Push(eventRoute); } #endregion Operations #region HelperMethods ////// Push the given instance of EventRoute on to the stack /// private static void Push(EventRoute eventRoute) { lock (_synchronized) { // In a normal scenario it is extremely rare to // require more than 2 EventRoutes at the same time if (_eventRouteStack == null) { _eventRouteStack = new EventRoute[2]; _stackTop = 0; } if (_stackTop < 2) { _eventRouteStack[_stackTop++] = eventRoute; } } } ////// Pop off the last instance of EventRoute in the stack /// private static EventRoute Pop() { lock (_synchronized) { if (_stackTop > 0) { EventRoute eventRoute = _eventRouteStack[--_stackTop]; _eventRouteStack[_stackTop] = null; return eventRoute; } } return null; } #endregion HelperMethods #region Data private static EventRoute[] _eventRouteStack; private static int _stackTop; private static object _synchronized = new object(); #endregion Data } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueryAccessibilityHelpEvent.cs
- WindowsEditBox.cs
- ContentIterators.cs
- SqlCachedBuffer.cs
- CodeGroup.cs
- StaticSiteMapProvider.cs
- ComPlusContractBehavior.cs
- AssociationSet.cs
- DataContractJsonSerializer.cs
- UserInitiatedNavigationPermission.cs
- CheckoutException.cs
- TransportDefaults.cs
- AuthenticationSection.cs
- EntitySet.cs
- TextRange.cs
- CheckStoreFileValidityRequest.cs
- ClonableStack.cs
- MasterPageBuildProvider.cs
- ActivityMetadata.cs
- WebPartDeleteVerb.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- MapPathBasedVirtualPathProvider.cs
- PreviewPrintController.cs
- PackWebRequestFactory.cs
- BuilderPropertyEntry.cs
- DbgUtil.cs
- ProviderUtil.cs
- XmlIlTypeHelper.cs
- updateconfighost.cs
- QuotedPairReader.cs
- RelationshipEnd.cs
- DesignTimeParseData.cs
- ScriptReference.cs
- CriticalHandle.cs
- InkPresenter.cs
- XmlEntityReference.cs
- QueryParameter.cs
- TranslateTransform3D.cs
- PointLight.cs
- XmlSchemaDocumentation.cs
- PersistNameAttribute.cs
- GestureRecognitionResult.cs
- FrameworkContentElementAutomationPeer.cs
- MarkupObject.cs
- DataGridPageChangedEventArgs.cs
- CodeNamespaceCollection.cs
- BezierSegment.cs
- SatelliteContractVersionAttribute.cs
- XmlValueConverter.cs
- Helper.cs
- ColumnPropertiesGroup.cs
- XamlReaderHelper.cs
- WebBrowsableAttribute.cs
- DataRowCollection.cs
- UpdateExpressionVisitor.cs
- ProfileBuildProvider.cs
- ReflectionServiceProvider.cs
- ListView.cs
- StructuredTypeEmitter.cs
- Parameter.cs
- DataBindingCollection.cs
- Size.cs
- SplineQuaternionKeyFrame.cs
- SslStream.cs
- XamlWriter.cs
- SuppressMergeCheckAttribute.cs
- ResourcePool.cs
- QueryComponents.cs
- HtmlTableCell.cs
- SystemIcmpV4Statistics.cs
- XmlILTrace.cs
- SqlProfileProvider.cs
- Int64AnimationUsingKeyFrames.cs
- DesignerVerbCollection.cs
- XmlSchemaSimpleContent.cs
- DBParameter.cs
- GridViewCancelEditEventArgs.cs
- filewebresponse.cs
- MouseGestureConverter.cs
- XamlPointCollectionSerializer.cs
- PrivilegeNotHeldException.cs
- TypeResolvingOptionsAttribute.cs
- unitconverter.cs
- BitmapMetadataBlob.cs
- AllMembershipCondition.cs
- SafeNativeMethods.cs
- AccessDataSourceView.cs
- DomainConstraint.cs
- SelectorAutomationPeer.cs
- StringWriter.cs
- HTMLTextWriter.cs
- PropertyEmitter.cs
- ComponentEditorForm.cs
- DelegateBodyWriter.cs
- ResourceDefaultValueAttribute.cs
- SQLMoney.cs
- HostVisual.cs
- InvalidEnumArgumentException.cs
- DataGridViewCellStyleChangedEventArgs.cs
- CommandPlan.cs