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
- CharStorage.cs
- NotFiniteNumberException.cs
- DataMemberFieldConverter.cs
- DecimalKeyFrameCollection.cs
- controlskin.cs
- XmlAtomicValue.cs
- FormParameter.cs
- HandleCollector.cs
- BaseDataListPage.cs
- CurrentTimeZone.cs
- ParameterBuilder.cs
- LinearKeyFrames.cs
- BinaryFormatterSinks.cs
- StringAnimationBase.cs
- WeakReferenceList.cs
- Int32KeyFrameCollection.cs
- HtmlButton.cs
- ServiceDesigner.cs
- TimelineGroup.cs
- DataGridViewRowPrePaintEventArgs.cs
- RegexGroup.cs
- GlyphTypeface.cs
- Activator.cs
- AdRotator.cs
- BufferedGraphicsContext.cs
- PatternMatcher.cs
- DependencySource.cs
- NamespaceQuery.cs
- ClientUtils.cs
- FreeFormDesigner.cs
- DetailsViewDeletedEventArgs.cs
- RegexWorker.cs
- ServiceHttpModule.cs
- StatusBar.cs
- FieldAccessException.cs
- ClientType.cs
- ContainerVisual.cs
- RequestCacheEntry.cs
- TargetControlTypeCache.cs
- CustomErrorsSection.cs
- MouseButton.cs
- CustomErrorsSectionWrapper.cs
- UserPersonalizationStateInfo.cs
- DispatcherOperation.cs
- OleDbWrapper.cs
- ScrollChrome.cs
- SessionIDManager.cs
- ResXBuildProvider.cs
- ScrollEvent.cs
- FullTextLine.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ILGenerator.cs
- CommandHelper.cs
- CaseExpr.cs
- ListParagraph.cs
- DeviceContext.cs
- RunClient.cs
- PrimaryKeyTypeConverter.cs
- InternalConfigConfigurationFactory.cs
- _ScatterGatherBuffers.cs
- FilteredAttributeCollection.cs
- ObjectAnimationUsingKeyFrames.cs
- RecipientIdentity.cs
- XamlPoint3DCollectionSerializer.cs
- WebPartsPersonalization.cs
- CacheEntry.cs
- Label.cs
- Identity.cs
- LocatorBase.cs
- BrushProxy.cs
- WebPartConnectionsEventArgs.cs
- Convert.cs
- HotSpot.cs
- SQLChars.cs
- Visitor.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- Pair.cs
- AuthenticatingEventArgs.cs
- ErrorEventArgs.cs
- _FixedSizeReader.cs
- ImageAnimator.cs
- SqlCachedBuffer.cs
- RenderContext.cs
- RTLAwareMessageBox.cs
- RowBinding.cs
- ToolStripContentPanel.cs
- FixedDocumentSequencePaginator.cs
- StylusDevice.cs
- IndentedTextWriter.cs
- SafeNativeMethods.cs
- SafeEventLogReadHandle.cs
- LinkedList.cs
- EncodingInfo.cs
- Composition.cs
- AttachmentCollection.cs
- GPPOINT.cs
- JournalEntry.cs
- BehaviorDragDropEventArgs.cs
- NetworkInformationPermission.cs
- FixedSOMPage.cs