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
- DeleteHelper.cs
- BindingContext.cs
- ServiceReference.cs
- PlatformCulture.cs
- UInt32.cs
- OuterGlowBitmapEffect.cs
- OpenFileDialog.cs
- UnauthorizedWebPart.cs
- ParseHttpDate.cs
- Calendar.cs
- XmlSchemaSimpleTypeList.cs
- UrlPath.cs
- QuadraticBezierSegment.cs
- ConsoleKeyInfo.cs
- HttpModuleAction.cs
- ObjectStateEntry.cs
- ChtmlCalendarAdapter.cs
- DateTimeParse.cs
- DockingAttribute.cs
- CodeMethodMap.cs
- JavaScriptSerializer.cs
- UnitySerializationHolder.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- AttachInfo.cs
- TextServicesDisplayAttributePropertyRanges.cs
- ProcessModuleCollection.cs
- TableItemStyle.cs
- FixedNode.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- Int32Rect.cs
- ContextMenu.cs
- StreamWithDictionary.cs
- CursorInteropHelper.cs
- ScriptingRoleServiceSection.cs
- Drawing.cs
- AttributeProviderAttribute.cs
- _BufferOffsetSize.cs
- TriggerBase.cs
- _AcceptOverlappedAsyncResult.cs
- LeaseManager.cs
- SqlDependencyListener.cs
- Point.cs
- WebPartTransformerAttribute.cs
- FocusTracker.cs
- NamedPipeAppDomainProtocolHandler.cs
- ByteFacetDescriptionElement.cs
- KeyConverter.cs
- Shape.cs
- AssemblyBuilder.cs
- HtmlControlPersistable.cs
- TemplatedAdorner.cs
- RowToFieldTransformer.cs
- XmlSchemaAny.cs
- Formatter.cs
- Material.cs
- TreeNodeBindingCollection.cs
- PenThreadPool.cs
- TextBoxBase.cs
- AsyncPostBackTrigger.cs
- SkipQueryOptionExpression.cs
- PolyQuadraticBezierSegment.cs
- XmlSigningNodeWriter.cs
- RotateTransform.cs
- WebControlParameterProxy.cs
- BrowserTree.cs
- ProxyElement.cs
- StylusPointProperties.cs
- DiagnosticsConfiguration.cs
- ActivityDelegate.cs
- PageAsyncTaskManager.cs
- MultiPropertyDescriptorGridEntry.cs
- _AuthenticationState.cs
- DataGridParentRows.cs
- TransformerInfo.cs
- GraphicsPath.cs
- ImageCodecInfo.cs
- GPRECT.cs
- PackageRelationshipCollection.cs
- LinkedResourceCollection.cs
- ReaderWriterLockWrapper.cs
- XmlReflectionImporter.cs
- SrgsToken.cs
- XmlSecureResolver.cs
- PagesSection.cs
- DesignerValidationSummaryAdapter.cs
- PartialList.cs
- COSERVERINFO.cs
- Point4DValueSerializer.cs
- XmlBoundElement.cs
- DllHostInitializer.cs
- WebPart.cs
- TableRow.cs
- StorageRoot.cs
- ICspAsymmetricAlgorithm.cs
- DataSourceCache.cs
- FrameAutomationPeer.cs
- ExpandSegment.cs
- ServiceProviders.cs
- XmlDigitalSignatureProcessor.cs
- WebBrowser.cs