Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Util / SafeBitVector32.cs / 1 / SafeBitVector32.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Threading; namespace System.Web.Util { // // This is a multithreadsafe version of System.Collections.Specialized.BitVector32. // [Serializable] internal struct SafeBitVector32 { private volatile int _data; internal SafeBitVector32(int data) { this._data = data; } #if UNUSED_CODE internal int IntegerValue { get { return _data; } set { #pragma warning disable 0420 Interlocked.Exchange(ref _data, value); #pragma warning restore 0420 } } #endif internal bool this[int bit] { get { int data = _data; return (data & bit) == bit; } set { for (;;) { int oldData = _data; int newData; if (value) { newData = oldData | bit; } else { newData = oldData & ~bit; } #pragma warning disable 0420 int result = Interlocked.CompareExchange(ref _data, newData, oldData); #pragma warning restore 0420 if (result == oldData) { break; } } } } internal bool ChangeValue(int bit, bool value) { for (;;) { int oldData = _data; int newData; if (value) { newData = oldData | bit; } else { newData = oldData & ~bit; } if (oldData == newData) { return false; } #pragma warning disable 0420 int result = Interlocked.CompareExchange(ref _data, newData, oldData); #pragma warning restore 0420 if (result == oldData) { return true; } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompositeCollectionView.cs
- TreeBuilderXamlTranslator.cs
- FontClient.cs
- CurrentChangedEventManager.cs
- ZipIOCentralDirectoryFileHeader.cs
- XmlIlTypeHelper.cs
- WebPartMovingEventArgs.cs
- SqlOuterApplyReducer.cs
- DataObjectPastingEventArgs.cs
- HtmlTitle.cs
- CodeAttributeDeclarationCollection.cs
- ZoomPercentageConverter.cs
- validation.cs
- VectorCollection.cs
- LineUtil.cs
- ThicknessConverter.cs
- ThicknessAnimationBase.cs
- PrintDialog.cs
- CodeSubDirectory.cs
- ProgressBarBrushConverter.cs
- CertificateManager.cs
- BitVector32.cs
- Expressions.cs
- EnumValAlphaComparer.cs
- WeakReferenceList.cs
- XmlSchemaObjectTable.cs
- NotSupportedException.cs
- PanningMessageFilter.cs
- webeventbuffer.cs
- RadioButtonBaseAdapter.cs
- WrappedIUnknown.cs
- WebPartVerbCollection.cs
- EntityAdapter.cs
- UnsafeNativeMethodsPenimc.cs
- ConfigXmlReader.cs
- SecurityKeyUsage.cs
- MarkupExtensionParser.cs
- PrimitiveCodeDomSerializer.cs
- BinaryNode.cs
- WindowsFormsSectionHandler.cs
- FrameSecurityDescriptor.cs
- URLString.cs
- Int32CAMarshaler.cs
- DbParameterCollectionHelper.cs
- VisualCollection.cs
- QueryResults.cs
- KeySplineConverter.cs
- Int16KeyFrameCollection.cs
- ConfigurationManagerInternal.cs
- sqlmetadatafactory.cs
- FocusTracker.cs
- WSSecurityXXX2005.cs
- ActionFrame.cs
- HScrollBar.cs
- TypeFieldSchema.cs
- EventLogEntry.cs
- _LocalDataStoreMgr.cs
- TemplateBindingExpression.cs
- UnmanagedBitmapWrapper.cs
- BamlTreeNode.cs
- BindingFormattingDialog.cs
- TriggerBase.cs
- DispatchChannelSink.cs
- __Filters.cs
- LogEntryHeaderSerializer.cs
- SkinIDTypeConverter.cs
- EntityDataSourceEntityTypeFilterItem.cs
- VectorAnimation.cs
- Constraint.cs
- PackageDigitalSignature.cs
- Asn1IntegerConverter.cs
- CodeSubDirectoriesCollection.cs
- Error.cs
- SelectingProviderEventArgs.cs
- Stylesheet.cs
- HttpApplicationFactory.cs
- HtmlControlAdapter.cs
- DialogResultConverter.cs
- BinaryParser.cs
- DataMemberFieldEditor.cs
- PropertyChangingEventArgs.cs
- XXXInfos.cs
- ColumnMap.cs
- HTMLTextWriter.cs
- RijndaelManaged.cs
- Pair.cs
- ServiceDescription.cs
- InternalBufferOverflowException.cs
- WorkflowStateRollbackService.cs
- MachineKeySection.cs
- SessionStateItemCollection.cs
- invalidudtexception.cs
- DriveNotFoundException.cs
- TaskFormBase.cs
- ReferenceEqualityComparer.cs
- AbsoluteQuery.cs
- GridViewCancelEditEventArgs.cs
- SafeMILHandle.cs
- WorkBatch.cs
- TriggerBase.cs