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
- TimeIntervalCollection.cs
- SmiRequestExecutor.cs
- CommonXSendMessage.cs
- Internal.cs
- SystemFonts.cs
- MsmqException.cs
- ReferentialConstraint.cs
- CounterSampleCalculator.cs
- XsltContext.cs
- GatewayDefinition.cs
- SystemSounds.cs
- EpmSourcePathSegment.cs
- EnumerableRowCollection.cs
- StringUtil.cs
- SymbolMethod.cs
- NameValueConfigurationCollection.cs
- ConstructorExpr.cs
- ProgressiveCrcCalculatingStream.cs
- XmlValueConverter.cs
- Rectangle.cs
- SQLBinary.cs
- PrimitiveRenderer.cs
- OleCmdHelper.cs
- RequestCachePolicy.cs
- ColumnCollection.cs
- SmiContext.cs
- WindowsFormsSynchronizationContext.cs
- GlyphInfoList.cs
- LogoValidationException.cs
- Opcode.cs
- QuestionEventArgs.cs
- TrustLevelCollection.cs
- DataStreamFromComStream.cs
- CompModHelpers.cs
- CommandEventArgs.cs
- LinkUtilities.cs
- XmlBindingWorker.cs
- WhitespaceSignificantCollectionAttribute.cs
- StylusButtonEventArgs.cs
- Accessible.cs
- GridViewRowEventArgs.cs
- PngBitmapDecoder.cs
- ComplexTypeEmitter.cs
- Style.cs
- LogReservationCollection.cs
- ButtonBase.cs
- SettingsPropertyCollection.cs
- CacheEntry.cs
- TextSearch.cs
- XmlSchemaAttributeGroup.cs
- ToRequest.cs
- FilteredXmlReader.cs
- Size3D.cs
- DeviceContext.cs
- DropShadowBitmapEffect.cs
- WriteTimeStream.cs
- MembershipValidatePasswordEventArgs.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- IndentTextWriter.cs
- TableLayoutStyleCollection.cs
- ConnectionManagementElement.cs
- InstanceOwner.cs
- Style.cs
- SecurityHelper.cs
- XPathScanner.cs
- XmlQueryTypeFactory.cs
- IxmlLineInfo.cs
- ArgIterator.cs
- SupportsEventValidationAttribute.cs
- CloudCollection.cs
- InstancePersistenceContext.cs
- ImageField.cs
- ColumnResult.cs
- TextChange.cs
- CompositeFontFamily.cs
- ToolStripItemEventArgs.cs
- SynchronizationLockException.cs
- InheritanceAttribute.cs
- AlternationConverter.cs
- SafeThreadHandle.cs
- SponsorHelper.cs
- SectionVisual.cs
- EdmProviderManifest.cs
- rsa.cs
- MenuStrip.cs
- EntityParameter.cs
- FamilyMapCollection.cs
- DateTimeValueSerializerContext.cs
- BitArray.cs
- UIElementCollection.cs
- TypeToken.cs
- ListViewInsertEventArgs.cs
- SpeakInfo.cs
- ListMarkerSourceInfo.cs
- DataGridViewComboBoxEditingControl.cs
- SqlServices.cs
- PipelineDeploymentState.cs
- FileSystemEventArgs.cs
- ExtenderProvidedPropertyAttribute.cs
- CurrencyWrapper.cs