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
- NavigationPropertyEmitter.cs
- ThaiBuddhistCalendar.cs
- DataGridColumnCollectionEditor.cs
- ConfigurationPermission.cs
- DataException.cs
- HostProtectionPermission.cs
- DeferredBinaryDeserializerExtension.cs
- X509CertificateEndpointIdentity.cs
- TypeToken.cs
- XslException.cs
- ToolStripComboBox.cs
- CheckoutException.cs
- SecondaryViewProvider.cs
- ObjectStorage.cs
- BrushConverter.cs
- SymmetricSecurityBindingElement.cs
- ListViewTableCell.cs
- MDIClient.cs
- CacheDependency.cs
- FixedFindEngine.cs
- TypeElement.cs
- DataGridViewRowPostPaintEventArgs.cs
- ToolStripCollectionEditor.cs
- RootBrowserWindowProxy.cs
- ViewCellSlot.cs
- MimeFormReflector.cs
- shaperfactoryquerycacheentry.cs
- OracleConnection.cs
- TypeUsage.cs
- StringFormat.cs
- SymbolMethod.cs
- ObjectView.cs
- ManualResetEvent.cs
- BamlRecords.cs
- SecurityPermission.cs
- PopupRoot.cs
- TemplateBindingExpression.cs
- RSACryptoServiceProvider.cs
- DataKey.cs
- StartUpEventArgs.cs
- TrackingMemoryStream.cs
- WebPartEditVerb.cs
- InputProviderSite.cs
- PersonalizableAttribute.cs
- RepeatEnumerable.cs
- EncoderParameters.cs
- WindowsStreamSecurityBindingElement.cs
- ControlPropertyNameConverter.cs
- CryptoProvider.cs
- LinqDataSourceSelectEventArgs.cs
- HttpWriter.cs
- SqlDataSourceQueryEditor.cs
- DataGridViewSelectedCellCollection.cs
- ReadOnlyDataSourceView.cs
- Roles.cs
- StatusBarDesigner.cs
- ResponseBodyWriter.cs
- SignatureGenerator.cs
- HtmlShimManager.cs
- SQLByte.cs
- ThreadAbortException.cs
- XmlILStorageConverter.cs
- BackStopAuthenticationModule.cs
- InputElement.cs
- RemoteHelper.cs
- UnmanagedMemoryStream.cs
- InfoCard.cs
- ReachSerializationUtils.cs
- TextElementCollectionHelper.cs
- FormsAuthenticationUserCollection.cs
- TdsParameterSetter.cs
- ToolStripSystemRenderer.cs
- VerificationAttribute.cs
- XmlAttributeAttribute.cs
- SqlUdtInfo.cs
- BamlRecordHelper.cs
- GraphicsContainer.cs
- ItemAutomationPeer.cs
- ProjectionPruner.cs
- LambdaSerializationException.cs
- SendingRequestEventArgs.cs
- JsonFormatWriterGenerator.cs
- NetworkInterface.cs
- Vector3DCollectionConverter.cs
- BufferedWebEventProvider.cs
- FilteredSchemaElementLookUpTable.cs
- MappedMetaModel.cs
- Msec.cs
- ComplexBindingPropertiesAttribute.cs
- HMAC.cs
- WebPartManagerInternals.cs
- XomlCompilerParameters.cs
- IPEndPoint.cs
- HTMLTagNameToTypeMapper.cs
- DataGridToolTip.cs
- UnitySerializationHolder.cs
- HScrollProperties.cs
- AudioFormatConverter.cs
- AppSettingsSection.cs
- ObjectDataSourceWizardForm.cs