Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; } } } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeCollectionDesigner.xaml.cs
- SqlRowUpdatingEvent.cs
- SqlEnums.cs
- EditorZone.cs
- RectValueSerializer.cs
- ControlAdapter.cs
- Currency.cs
- FilterException.cs
- ForceCopyBuildProvider.cs
- MeasurementDCInfo.cs
- SqlBinder.cs
- ExpandSegmentCollection.cs
- ImageListUtils.cs
- TextFormatterHost.cs
- PageRouteHandler.cs
- StyleCollection.cs
- Separator.cs
- DataGridViewColumnConverter.cs
- Delegate.cs
- FormViewModeEventArgs.cs
- TouchEventArgs.cs
- Mappings.cs
- XmlSchemaSimpleType.cs
- WebException.cs
- Clipboard.cs
- InputChannelBinder.cs
- SoapCodeExporter.cs
- ReadContentAsBinaryHelper.cs
- CommentGlyph.cs
- FullTextBreakpoint.cs
- CategoryAttribute.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- ItemMap.cs
- SQLBoolean.cs
- InputLangChangeRequestEvent.cs
- DataTableExtensions.cs
- WebException.cs
- Base64WriteStateInfo.cs
- SingleObjectCollection.cs
- CounterCreationData.cs
- SplitterPanelDesigner.cs
- SessionEndingCancelEventArgs.cs
- StructuredCompositeActivityDesigner.cs
- RequestUriProcessor.cs
- LightweightCodeGenerator.cs
- _NegoState.cs
- PersonalizationState.cs
- Bits.cs
- CTreeGenerator.cs
- AssemblyCache.cs
- AstTree.cs
- FormViewRow.cs
- ToolTipService.cs
- NavigationFailedEventArgs.cs
- COM2IPerPropertyBrowsingHandler.cs
- DataBindingExpressionBuilder.cs
- StateFinalizationDesigner.cs
- SqlDataSourceQueryEditor.cs
- AffineTransform3D.cs
- ConnectivityStatus.cs
- DuplicateWaitObjectException.cs
- SplitContainer.cs
- DomNameTable.cs
- OledbConnectionStringbuilder.cs
- _SpnDictionary.cs
- SpeechSynthesizer.cs
- XmlSchemaInfo.cs
- StringComparer.cs
- glyphs.cs
- webeventbuffer.cs
- EmptyTextWriter.cs
- Quad.cs
- SimpleBitVector32.cs
- AbsoluteQuery.cs
- TextBoxBase.cs
- DetailsViewDeleteEventArgs.cs
- FixedHyperLink.cs
- DictionaryEditChange.cs
- VectorCollection.cs
- InfoCardTrace.cs
- RC2.cs
- DropSource.cs
- ThicknessAnimation.cs
- SafeNativeMethods.cs
- DataTemplateKey.cs
- WebFaultClientMessageInspector.cs
- EntityDataSourceWizardForm.cs
- CompilerTypeWithParams.cs
- WmlPhoneCallAdapter.cs
- _AuthenticationState.cs
- AnimationStorage.cs
- SoapExtension.cs
- WindowsToolbarAsMenu.cs
- ProxySimple.cs
- TypedElement.cs
- CodeSubDirectoriesCollection.cs
- UserInitiatedRoutedEventPermission.cs
- CompilationSection.cs
- DecodeHelper.cs
- StorageAssociationSetMapping.cs