Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- SQLUtility.cs
- TemplateEditingService.cs
- SHA256.cs
- TriggerCollection.cs
- FamilyTypeface.cs
- IDReferencePropertyAttribute.cs
- DataGridViewCellMouseEventArgs.cs
- _UncName.cs
- InputBinding.cs
- ResourceAssociationTypeEnd.cs
- DiscoveryClientRequestChannel.cs
- DataServiceOperationContext.cs
- XmlEventCache.cs
- CustomAttributeSerializer.cs
- DurableServiceAttribute.cs
- CustomTypeDescriptor.cs
- DispatcherEventArgs.cs
- ScriptManager.cs
- ComEventsHelper.cs
- DataObject.cs
- SplitterDesigner.cs
- COM2PropertyBuilderUITypeEditor.cs
- SqlDuplicator.cs
- FormatVersion.cs
- DbConnectionPoolOptions.cs
- BufferedStream.cs
- HtmlFormWrapper.cs
- BitmapMetadataEnumerator.cs
- MD5HashHelper.cs
- ApplicationServicesHostFactory.cs
- ObfuscateAssemblyAttribute.cs
- SectionRecord.cs
- HostingEnvironmentException.cs
- SafeMemoryMappedViewHandle.cs
- RtfControlWordInfo.cs
- ResourceDictionary.cs
- EncodingFallbackAwareXmlTextWriter.cs
- TextBox.cs
- SettingsAttributes.cs
- InputBuffer.cs
- ParameterBinding.cs
- CollectionDataContract.cs
- WeakReferenceEnumerator.cs
- RemoteWebConfigurationHost.cs
- BaseTemplateParser.cs
- ErrorRuntimeConfig.cs
- DerivedKeySecurityTokenStub.cs
- SHA512.cs
- LocalizabilityAttribute.cs
- XmlSchemaComplexContentExtension.cs
- SurrogateEncoder.cs
- XmlElementAttribute.cs
- RtfToXamlReader.cs
- RequiredAttributeAttribute.cs
- TypeSystem.cs
- MenuItemCollectionEditor.cs
- SmiMetaDataProperty.cs
- DataObjectPastingEventArgs.cs
- MobileCapabilities.cs
- SoapClientProtocol.cs
- PrintDialog.cs
- ResourceAttributes.cs
- SafeCryptoHandles.cs
- EdmFunctions.cs
- FastEncoderWindow.cs
- EntityViewContainer.cs
- CustomAttributeBuilder.cs
- PingOptions.cs
- DeviceContexts.cs
- Policy.cs
- ScrollBar.cs
- PtsCache.cs
- iisPickupDirectory.cs
- SerializationEventsCache.cs
- MultipleViewProviderWrapper.cs
- NativeMethods.cs
- listitem.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- ToolStripPanelRow.cs
- PersonalizationProviderHelper.cs
- SecurityVerifiedMessage.cs
- EventDescriptor.cs
- StatusBarPanelClickEvent.cs
- ExternalFile.cs
- PostBackOptions.cs
- ExpressionBindingCollection.cs
- DbSetClause.cs
- TableCellCollection.cs
- ActiveXHost.cs
- LinqDataSourceDisposeEventArgs.cs
- IPAddressCollection.cs
- PageThemeCodeDomTreeGenerator.cs
- EventLogReader.cs
- XpsFixedPageReaderWriter.cs
- BevelBitmapEffect.cs
- AnimationClock.cs
- SafeUserTokenHandle.cs
- Error.cs
- ServiceCredentialsElement.cs
- ConfigurationStrings.cs