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
- MessageQueueAccessControlEntry.cs
- FormViewPageEventArgs.cs
- baseaxisquery.cs
- UserControlBuildProvider.cs
- AddInController.cs
- EntityDataSourceState.cs
- SocketException.cs
- FastEncoder.cs
- XmlBufferReader.cs
- SmiGettersStream.cs
- ToolBarOverflowPanel.cs
- WebPartDisplayModeCancelEventArgs.cs
- Attributes.cs
- BaseTransportHeaders.cs
- DelegateSerializationHolder.cs
- entityreference_tresulttype.cs
- CaseInsensitiveComparer.cs
- documentsequencetextview.cs
- MasterPageParser.cs
- WebPartZoneAutoFormat.cs
- MaterializeFromAtom.cs
- IdentitySection.cs
- SqlBulkCopyColumnMappingCollection.cs
- CodeConditionStatement.cs
- PrimaryKeyTypeConverter.cs
- WpfMemberInvoker.cs
- Clause.cs
- FontFaceLayoutInfo.cs
- EditorPart.cs
- SequenceDesignerAccessibleObject.cs
- CollaborationHelperFunctions.cs
- SelectionPattern.cs
- __Filters.cs
- SamlSubject.cs
- WeakReferenceEnumerator.cs
- BooleanAnimationBase.cs
- SingleConverter.cs
- ContentTextAutomationPeer.cs
- InputBinder.cs
- CssClassPropertyAttribute.cs
- MethodCallConverter.cs
- MetadataArtifactLoaderFile.cs
- ComponentEvent.cs
- Tile.cs
- PeerInvitationResponse.cs
- CryptoStream.cs
- XsdDateTime.cs
- RtfToXamlReader.cs
- SettingsAttributeDictionary.cs
- ResolveCriteriaApril2005.cs
- WorkflowApplication.cs
- TransformerConfigurationWizardBase.cs
- WindowHideOrCloseTracker.cs
- SingleResultAttribute.cs
- CommandEventArgs.cs
- DataGridTextBoxColumn.cs
- AssociatedControlConverter.cs
- DownloadProgressEventArgs.cs
- CommandBinding.cs
- Win32Native.cs
- ComplexTypeEmitter.cs
- RandomNumberGenerator.cs
- CurrentChangingEventManager.cs
- DataControlFieldCell.cs
- SerializationEventsCache.cs
- BinHexEncoder.cs
- HtmlToClrEventProxy.cs
- ClientRuntimeConfig.cs
- ParameterCollection.cs
- DataGridComponentEditor.cs
- WindowsGrip.cs
- AbstractDataSvcMapFileLoader.cs
- PageFunction.cs
- WebCodeGenerator.cs
- SrgsElementFactoryCompiler.cs
- FileStream.cs
- BamlRecordHelper.cs
- WebBrowserNavigatedEventHandler.cs
- Semaphore.cs
- CertificateReferenceElement.cs
- ObjectNotFoundException.cs
- EventBookmark.cs
- MediaPlayerState.cs
- SqlBulkCopyColumnMapping.cs
- WebPartEditorApplyVerb.cs
- AssemblyCache.cs
- XmlSerializableWriter.cs
- XmlHierarchyData.cs
- contentDescriptor.cs
- TabletDeviceInfo.cs
- ErrorActivity.cs
- WizardPanel.cs
- CngKeyCreationParameters.cs
- SchemaMapping.cs
- DataTable.cs
- ErrorEventArgs.cs
- StreamGeometry.cs
- DbConnectionPoolGroupProviderInfo.cs
- SingleStorage.cs
- HyperLinkField.cs