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
- PaintValueEventArgs.cs
- DragDropManager.cs
- XmlLanguageConverter.cs
- WinFormsUtils.cs
- TypeUtils.cs
- Restrictions.cs
- VirtualDirectoryMappingCollection.cs
- TransformPatternIdentifiers.cs
- TextMetrics.cs
- ClipboardData.cs
- PropertyInformationCollection.cs
- EncryptedKey.cs
- StandardTransformFactory.cs
- Italic.cs
- ToolTipAutomationPeer.cs
- PageContent.cs
- TreeNodeStyle.cs
- ContextQuery.cs
- Pool.cs
- CompensateDesigner.cs
- HandlerWithFactory.cs
- _UriSyntax.cs
- ReadOnlyCollectionBase.cs
- PropertyValidationContext.cs
- XmlRawWriter.cs
- BitmapEffectDrawingContextState.cs
- CodeSubDirectory.cs
- EmptyControlCollection.cs
- StrongNamePublicKeyBlob.cs
- TypeDependencyAttribute.cs
- IntegerFacetDescriptionElement.cs
- WebPartCatalogAddVerb.cs
- URLString.cs
- MaskDesignerDialog.cs
- AttributeTable.cs
- XslCompiledTransform.cs
- QualifiedCellIdBoolean.cs
- DBParameter.cs
- TableLayoutPanelBehavior.cs
- TcpProcessProtocolHandler.cs
- ErrorFormatter.cs
- TreeNodeSelectionProcessor.cs
- hwndwrapper.cs
- XmlConvert.cs
- InplaceBitmapMetadataWriter.cs
- ProgressChangedEventArgs.cs
- GB18030Encoding.cs
- TransformDescriptor.cs
- OSFeature.cs
- PaintEvent.cs
- XamlParser.cs
- PanelStyle.cs
- ProviderUtil.cs
- CryptoProvider.cs
- DomainUpDown.cs
- AssemblyCache.cs
- RealizationDrawingContextWalker.cs
- ComEventsMethod.cs
- SourceFilter.cs
- WorkflowViewManager.cs
- WindowsToolbarAsMenu.cs
- DecimalAnimationBase.cs
- WebServiceTypeData.cs
- MobileUITypeEditor.cs
- NamespaceTable.cs
- ListMarkerLine.cs
- BitSet.cs
- ExpressionParser.cs
- XmlValidatingReaderImpl.cs
- ObjectResult.cs
- DataServiceExpressionVisitor.cs
- FileRecordSequenceCompletedAsyncResult.cs
- XmlSchemaGroupRef.cs
- HtmlTableRow.cs
- BinaryCommonClasses.cs
- InkSerializer.cs
- FastEncoderWindow.cs
- SortedSet.cs
- ArrayTypeMismatchException.cs
- ListViewInsertionMark.cs
- DataView.cs
- BigIntegerStorage.cs
- FixedSOMImage.cs
- ISAPIApplicationHost.cs
- XmlSchemaObject.cs
- MarshalDirectiveException.cs
- CustomAttributeSerializer.cs
- XmlFormatExtensionAttribute.cs
- HtmlInputPassword.cs
- SerTrace.cs
- XamlFigureLengthSerializer.cs
- TypedReference.cs
- SymDocumentType.cs
- InvokeHandlers.cs
- GestureRecognitionResult.cs
- ReadWriteSpinLock.cs
- NetworkInterface.cs
- WorkflowApplicationCompletedException.cs
- ObjectParameter.cs
- CodeDirectoryCompiler.cs