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
- URLString.cs
- ScaleTransform.cs
- Label.cs
- ToolboxItemCollection.cs
- AddDataControlFieldDialog.cs
- ClrProviderManifest.cs
- WSSecurityXXX2005.cs
- ObjectDisposedException.cs
- MediaElement.cs
- FileUtil.cs
- QueryStringParameter.cs
- XmlNodeChangedEventArgs.cs
- SqlTriggerAttribute.cs
- DmlSqlGenerator.cs
- MsdtcClusterUtils.cs
- XmlDigitalSignatureProcessor.cs
- Subordinate.cs
- XsltException.cs
- RegexTree.cs
- PathSegmentCollection.cs
- EditCommandColumn.cs
- DependentList.cs
- LambdaCompiler.Expressions.cs
- RemoveStoryboard.cs
- arc.cs
- WebPartHeaderCloseVerb.cs
- ExceptionCollection.cs
- NodeFunctions.cs
- WS2007FederationHttpBinding.cs
- XmlKeywords.cs
- AccessorTable.cs
- DesignerTransactionCloseEvent.cs
- Pointer.cs
- InputScope.cs
- WebConfigurationFileMap.cs
- BaseResourcesBuildProvider.cs
- NewExpression.cs
- BitmapDecoder.cs
- RegexTree.cs
- StopStoryboard.cs
- EventLogPermission.cs
- TableParaClient.cs
- ScriptingSectionGroup.cs
- ListDictionary.cs
- BuildResult.cs
- Header.cs
- Storyboard.cs
- DataSetFieldSchema.cs
- ServiceHttpHandlerFactory.cs
- BookmarkScope.cs
- _DomainName.cs
- ResourceDictionaryCollection.cs
- SchemaAttDef.cs
- InstanceNormalEvent.cs
- SqlTransaction.cs
- Int32Storage.cs
- KnownAssemblyEntry.cs
- IgnoreFileBuildProvider.cs
- CacheChildrenQuery.cs
- HttpWebRequestElement.cs
- AtomMaterializer.cs
- ExceptionHandlerDesigner.cs
- DrawingDrawingContext.cs
- OciLobLocator.cs
- RoutedEventHandlerInfo.cs
- RubberbandSelector.cs
- Grammar.cs
- PenContexts.cs
- Serializer.cs
- BordersPage.cs
- activationcontext.cs
- documentsequencetextcontainer.cs
- ZipIORawDataFileBlock.cs
- HashHelper.cs
- WindowsScrollBar.cs
- ResXResourceWriter.cs
- CompoundFileDeflateTransform.cs
- DataGridColumnCollection.cs
- FormatterServices.cs
- GeneralTransform3D.cs
- HatchBrush.cs
- RunClient.cs
- __Error.cs
- WebPartConnection.cs
- X509ChainPolicy.cs
- TagPrefixInfo.cs
- Crc32.cs
- _NtlmClient.cs
- RbTree.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- DoubleCollectionConverter.cs
- BoundPropertyEntry.cs
- InternalTypeHelper.cs
- BezierSegment.cs
- WriteFileContext.cs
- RequestBringIntoViewEventArgs.cs
- ConfigurationValidatorBase.cs
- TransformPattern.cs
- WebPartZoneCollection.cs
- DESCryptoServiceProvider.cs