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
- HostingEnvironmentSection.cs
- WebPartZoneCollection.cs
- RTLAwareMessageBox.cs
- AutomationTextAttribute.cs
- RegionData.cs
- ToolStripDropDownItem.cs
- OutOfProcStateClientManager.cs
- List.cs
- FontWeights.cs
- RegexRunner.cs
- Point3DAnimation.cs
- VectorAnimationBase.cs
- EmissiveMaterial.cs
- DbConnectionInternal.cs
- DefaultValueTypeConverter.cs
- SynchronizingStream.cs
- Monitor.cs
- TransactionScope.cs
- WorkflowCommandExtensionItem.cs
- FastEncoderWindow.cs
- CrossAppDomainChannel.cs
- EDesignUtil.cs
- EmptyElement.cs
- ViewStateException.cs
- COM2PropertyDescriptor.cs
- TemplateAction.cs
- Item.cs
- SmiMetaDataProperty.cs
- BitmapFrameEncode.cs
- OutputCacheSettingsSection.cs
- SiteMapNode.cs
- EntityDesignerDataSourceView.cs
- FaultHandlingFilter.cs
- UpdateProgress.cs
- CharacterMetrics.cs
- XmlBinaryReader.cs
- WebBrowser.cs
- SystemResourceKey.cs
- SequenceQuery.cs
- ContentElement.cs
- ObjectMemberMapping.cs
- EmptyEnumerable.cs
- RestrictedTransactionalPackage.cs
- UnsafeNativeMethodsCLR.cs
- XmlSerializerVersionAttribute.cs
- TextServicesCompartment.cs
- login.cs
- DoubleAnimationClockResource.cs
- ObjectParameterCollection.cs
- CollectionEditVerbManager.cs
- AtomContentProperty.cs
- HMACSHA512.cs
- Matrix3DValueSerializer.cs
- SHA512.cs
- TableRowCollection.cs
- TraceListeners.cs
- DesignerRegionCollection.cs
- QueryContinueDragEventArgs.cs
- Attachment.cs
- DataColumnPropertyDescriptor.cs
- BaseDataListComponentEditor.cs
- XamlClipboardData.cs
- SocketInformation.cs
- TemplateBaseAction.cs
- SizeFConverter.cs
- ChangeDirector.cs
- AuthenticationModuleElement.cs
- ScalarConstant.cs
- LineVisual.cs
- SafeCryptContextHandle.cs
- SqlRemoveConstantOrderBy.cs
- ChannelSettingsElement.cs
- ConfigurationSettings.cs
- OptimizerPatterns.cs
- AsyncOperationLifetimeManager.cs
- GeneratedCodeAttribute.cs
- MetafileEditor.cs
- Vertex.cs
- SqlMultiplexer.cs
- LineInfo.cs
- SymDocumentType.cs
- listitem.cs
- SafeNativeMethods.cs
- DefaultMemberAttribute.cs
- EventListener.cs
- StylusPointProperties.cs
- HtmlCommandAdapter.cs
- PointCollection.cs
- DirectoryRedirect.cs
- CodeNamespaceCollection.cs
- Conditional.cs
- DesignerLoader.cs
- PersonalizationEntry.cs
- DeclarativeCatalogPart.cs
- DataReceivedEventArgs.cs
- UpdatePanelControlTrigger.cs
- AttachmentService.cs
- AvTraceDetails.cs
- Help.cs
- DataGridViewMethods.cs