Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / Enumerables / EmptyEnumerable.cs / 1305376 / EmptyEnumerable.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // EmptyEnumerable.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Collections; using System.Collections.Generic; namespace System.Linq.Parallel { ////// We occ----ionally need a no-op enumerator to stand-in when we don't have data left /// within a partition's data stream. These are simple enumerable and enumerator /// implementations that always and consistently yield no elements. /// ///internal class EmptyEnumerable : ParallelQuery { private EmptyEnumerable() : base(QuerySettings.Empty) { } // A singleton cached and shared among callers. private static EmptyEnumerable s_instance; private static EmptyEnumerator s_enumeratorInstance; internal static EmptyEnumerable Instance { get { if (s_instance == null) { // There is no need for thread safety here. s_instance = new EmptyEnumerable (); } return s_instance; } } public override IEnumerator GetEnumerator() { if (s_enumeratorInstance == null) { // There is no need for thread safety here. s_enumeratorInstance = new EmptyEnumerator (); } return s_enumeratorInstance; } } internal class EmptyEnumerator : QueryOperatorEnumerator , IEnumerator { internal override bool MoveNext(ref T currentElement, ref int currentKey) { return false; } // IEnumerator methods. public T Current { get { return default(T); } } object IEnumerator.Current { get { return null; } } public bool MoveNext() { return false; } void Collections.IEnumerator.Reset() { } } } // 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
- ConfigurationValue.cs
- DependencyObjectPropertyDescriptor.cs
- JsonQNameDataContract.cs
- DataGridHyperlinkColumn.cs
- QuaternionIndependentAnimationStorage.cs
- XmlMessageFormatter.cs
- DataTemplate.cs
- Error.cs
- ArraySet.cs
- ResourceDictionary.cs
- WindowsHyperlink.cs
- TemplateManager.cs
- WindowsListBox.cs
- ConfigurationConverterBase.cs
- ObjectStateManager.cs
- DictionarySectionHandler.cs
- Baml2006ReaderSettings.cs
- TransactionScope.cs
- EdgeModeValidation.cs
- ExpressionVisitorHelpers.cs
- WizardPanel.cs
- Normalization.cs
- ACE.cs
- UdpReplyToBehavior.cs
- GZipUtils.cs
- AppDomainInstanceProvider.cs
- DataGridViewSelectedRowCollection.cs
- HashCodeCombiner.cs
- sqlcontext.cs
- RadialGradientBrush.cs
- MetadataSet.cs
- ObjectContext.cs
- ICspAsymmetricAlgorithm.cs
- RootBrowserWindow.cs
- TabPageDesigner.cs
- DataGridViewCellPaintingEventArgs.cs
- StreamAsIStream.cs
- CanExecuteRoutedEventArgs.cs
- SupportsEventValidationAttribute.cs
- SourceChangedEventArgs.cs
- HyperLink.cs
- LocationSectionRecord.cs
- DynamicValueConverter.cs
- FileCodeGroup.cs
- EnumCodeDomSerializer.cs
- DataControlFieldHeaderCell.cs
- QueryRelOp.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- HtmlTableCellCollection.cs
- WebPartTransformer.cs
- DataObject.cs
- FrameDimension.cs
- Lookup.cs
- ExceptionCollection.cs
- ApplicationFileCodeDomTreeGenerator.cs
- Funcletizer.cs
- CompoundFileIOPermission.cs
- MsmqHostedTransportConfiguration.cs
- Metafile.cs
- DeflateEmulationStream.cs
- KeySpline.cs
- x509utils.cs
- TypeUsage.cs
- ToolStripGrip.cs
- StreamGeometry.cs
- SwitchElementsCollection.cs
- Utils.cs
- GlyphTypeface.cs
- ServiceOperation.cs
- DoubleLinkList.cs
- SqlLiftWhereClauses.cs
- TrackingServices.cs
- XmlElementCollection.cs
- SymmetricSecurityBindingElement.cs
- AssemblySettingAttributes.cs
- Font.cs
- Roles.cs
- UpdateRecord.cs
- DocComment.cs
- UserPreferenceChangedEventArgs.cs
- RemoteWebConfigurationHostStream.cs
- DataColumnCollection.cs
- ApplicationGesture.cs
- RegexStringValidator.cs
- Int64Animation.cs
- NameValueConfigurationElement.cs
- StateItem.cs
- BindingNavigatorDesigner.cs
- NativeMethodsCLR.cs
- BitmapEffectDrawing.cs
- VirtualizedItemPattern.cs
- PlacementWorkspace.cs
- NonClientArea.cs
- TabPage.cs
- DesignerProperties.cs
- ScrollViewerAutomationPeer.cs
- UnsafeNativeMethods.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- InstanceOwnerException.cs
- WindowsListViewGroupSubsetLink.cs