Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Concurrent / IProducerConsumerCollection.cs / 1305376 / IProducerConsumerCollection.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
//
// IProducerConsumerCollection.cs
//
// [....]
//
// A common interface for all concurrent collections.
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
namespace System.Collections.Concurrent
{
///
/// Defines methods to manipulate thread-safe collections intended for producer/consumer usage.
///
/// Specifies the type of elements in the collection.
///
/// All implementations of this interface must enable all members of this interface
/// to be used concurrently from multiple threads.
///
public interface IProducerConsumerCollection : IEnumerable, ICollection
{
///
/// Copies the elements of the to
/// an
/// , starting at a specified index.
///
/// The one-dimensional that is the destination of
/// the elements copied from the .
/// The array must have zero-based indexing.
/// The zero-based index in at which copying
/// begins.
/// is a null reference (Nothing in
/// Visual Basic).
/// is less than
/// zero.
/// is equal to or greater than the
/// length of the
/// -or- The number of elements in the source is greater than the
/// available space from to the end of the destination .
///
void CopyTo(T[] array, int index);
///
/// Attempts to add an object to the .
///
/// The object to add to the .
/// true if the object was added successfully; otherwise, false.
/// The was invalid for this collection.
bool TryAdd(T item);
///
/// Attempts to remove and return an object from the .
///
///
/// When this method returns, if the object was removed and returned successfully, contains the removed object. If no object was available to be removed, the value is
/// unspecified.
///
/// true if an object was removed and returned successfully; otherwise, false.
bool TryTake(out T item);
///
/// Copies the elements contained in the to a new array.
///
/// A new array containing the elements copied from the .
T[] ToArray();
}
///
/// A debugger view of the IProducerConsumerCollection that makes it simple to browse the
/// collection's contents at a point in time.
///
/// The type of elements stored within.
internal sealed class SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView
{
private IProducerConsumerCollection m_collection; // The collection being viewed.
///
/// Constructs a new debugger view object for the provided collection object.
///
/// A collection to browse in the debugger.
public SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView(IProducerConsumerCollection collection)
{
if (collection == null)
{
throw new ArgumentNullException("collection");
}
m_collection = collection;
}
///
/// Returns a snapshot of the underlying collection's elements.
///
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public T[] Items
{
get { return m_collection.ToArray(); }
}
}
}
// 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
- TraceFilter.cs
- TabControlToolboxItem.cs
- DetailsViewPagerRow.cs
- MILUtilities.cs
- _OSSOCK.cs
- TimeSpanConverter.cs
- VScrollProperties.cs
- GetTokenRequest.cs
- KeyManager.cs
- ToolboxBitmapAttribute.cs
- TypefaceMap.cs
- BaseDataBoundControl.cs
- Function.cs
- LongValidator.cs
- SynchronizedDispatch.cs
- BinaryEditor.cs
- NetSectionGroup.cs
- DragCompletedEventArgs.cs
- ExpanderAutomationPeer.cs
- ObjectTag.cs
- ByteRangeDownloader.cs
- StaticResourceExtension.cs
- ArgumentsParser.cs
- XmlDeclaration.cs
- UpdatableGenericsFeature.cs
- RoleGroupCollection.cs
- TextServicesManager.cs
- SecurityKeyType.cs
- BindingMemberInfo.cs
- MasterPageParser.cs
- ColorTransform.cs
- ConfigurationSettings.cs
- Stopwatch.cs
- ZipIOExtraFieldZip64Element.cs
- SynchronousChannel.cs
- MetafileHeaderEmf.cs
- PageFunction.cs
- WebEncodingValidatorAttribute.cs
- ReflectPropertyDescriptor.cs
- MonikerBuilder.cs
- UrlPath.cs
- IteratorFilter.cs
- SystemIPAddressInformation.cs
- TextParentUndoUnit.cs
- ExpressionList.cs
- OpenTypeLayoutCache.cs
- PerformanceCounter.cs
- SecurityTokenSerializer.cs
- SqlStream.cs
- HttpModuleActionCollection.cs
- RegexWorker.cs
- ValidationError.cs
- SpellerError.cs
- XsltLoader.cs
- DataViewSetting.cs
- SmiContextFactory.cs
- TextTreeFixupNode.cs
- BulletChrome.cs
- WebServiceEnumData.cs
- ControlEvent.cs
- Compensate.cs
- BrushMappingModeValidation.cs
- HandleScope.cs
- SchemaImporterExtensionElementCollection.cs
- XmlnsCache.cs
- RuntimeHelpers.cs
- RsaEndpointIdentity.cs
- PropertyDescriptorGridEntry.cs
- WebPartConnectionsEventArgs.cs
- RepeatBehaviorConverter.cs
- NavigationPropertyEmitter.cs
- PropertyBuilder.cs
- DataColumn.cs
- KeyGestureValueSerializer.cs
- UpdateTracker.cs
- XmlQueryRuntime.cs
- BezierSegment.cs
- ToggleButtonAutomationPeer.cs
- GregorianCalendarHelper.cs
- ScriptingWebServicesSectionGroup.cs
- DesignerRegionMouseEventArgs.cs
- DataConnectionHelper.cs
- QueryTaskGroupState.cs
- Animatable.cs
- StorageTypeMapping.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- LineProperties.cs
- Ipv6Element.cs
- RelationshipSet.cs
- AppearanceEditorPart.cs
- HMACSHA512.cs
- DataGridViewCellEventArgs.cs
- EnumType.cs
- TextBox.cs
- ColumnReorderedEventArgs.cs
- RichTextBox.cs
- DispatcherExceptionFilterEventArgs.cs
- Point.cs
- WebPartActionVerb.cs
- GatewayDefinition.cs