Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Util / SafeBitVector32.cs / 1305376 / 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; } 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StoreItemCollection.Loader.cs
- ToolBarDesigner.cs
- uribuilder.cs
- MonthCalendar.cs
- FontCacheLogic.cs
- SizeConverter.cs
- CharEntityEncoderFallback.cs
- CompilerTypeWithParams.cs
- CacheAxisQuery.cs
- ColorDialog.cs
- ContextMenu.cs
- NumberFunctions.cs
- TextTreeObjectNode.cs
- SystemInfo.cs
- unitconverter.cs
- NavigationProgressEventArgs.cs
- DynamicFilter.cs
- ServiceOperationInfoTypeConverter.cs
- GlyphInfoList.cs
- ObjectDataSourceEventArgs.cs
- AppLevelCompilationSectionCache.cs
- XmlCDATASection.cs
- DocumentReferenceCollection.cs
- AlternationConverter.cs
- CommonObjectSecurity.cs
- Command.cs
- XmlEventCache.cs
- SqlProfileProvider.cs
- WebConfigurationManager.cs
- PointHitTestParameters.cs
- SpellerInterop.cs
- MachinePropertyVariants.cs
- TemplateXamlTreeBuilder.cs
- Evaluator.cs
- FieldTemplateUserControl.cs
- TypeBuilder.cs
- DecimalAnimation.cs
- AssemblyAttributesGoHere.cs
- SinglePhaseEnlistment.cs
- Matrix3DValueSerializer.cs
- SecurityDocument.cs
- QuadraticBezierSegment.cs
- FloaterBaseParaClient.cs
- Compiler.cs
- VsPropertyGrid.cs
- TextMetrics.cs
- HandlerWithFactory.cs
- SendActivity.cs
- WriteFileContext.cs
- PeerPresenceInfo.cs
- UIElement3DAutomationPeer.cs
- RubberbandSelector.cs
- SocketAddress.cs
- HtmlElement.cs
- RouteCollection.cs
- StrongNamePublicKeyBlob.cs
- IUnknownConstantAttribute.cs
- Number.cs
- Vector3DCollectionConverter.cs
- TimeoutException.cs
- RightNameExpirationInfoPair.cs
- LayoutTable.cs
- ValueExpressions.cs
- Trigger.cs
- SettingsPropertyNotFoundException.cs
- GeometryModel3D.cs
- UnsafeMethods.cs
- Single.cs
- SliderAutomationPeer.cs
- DataSourceXmlClassAttribute.cs
- SHA256CryptoServiceProvider.cs
- LayoutTable.cs
- BooleanKeyFrameCollection.cs
- GridViewCancelEditEventArgs.cs
- XPathNodeInfoAtom.cs
- ProxyWebPartManagerDesigner.cs
- ASCIIEncoding.cs
- SignedInfo.cs
- ConfigXmlReader.cs
- DbConnectionFactory.cs
- StylusButtonEventArgs.cs
- ToolStripContentPanel.cs
- SimpleWorkerRequest.cs
- RTLAwareMessageBox.cs
- FontDifferentiator.cs
- RowToFieldTransformer.cs
- RoleService.cs
- ObjectStorage.cs
- DisplayNameAttribute.cs
- EnvelopedPkcs7.cs
- HtmlSelect.cs
- ExpressionsCollectionConverter.cs
- Material.cs
- HtmlInputHidden.cs
- SqlUserDefinedTypeAttribute.cs
- ParameterInfo.cs
- UnknownBitmapEncoder.cs
- SpotLight.cs
- ServiceInstanceProvider.cs
- ToolStripItemRenderEventArgs.cs