Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Base / System / Windows / Threading / DispatcherObject.cs / 1 / DispatcherObject.cs
using System; using System.Windows; using System.Threading; using MS.Internal.WindowsBase; // FriendAccessAllowed namespace System.Windows.Threading { ////// A DispatcherObject is an object associated with a /// ///. A DispatcherObject instance should /// only be access by the dispatcher's thread. /// /// Subclasses of public abstract class DispatcherObject { ///should enforce thread /// safety by calling on all their public /// methods to ensure the calling thread is the appropriate thread. /// /// DispatcherObject cannot be independently instantiated; that is, /// all constructors are protected. /// /// Returns the [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] public Dispatcher Dispatcher { get { // This property is free-threaded. return _dispatcher; } } // This method allows certain derived classes to break the dispatcher affinity // of our objects. [FriendAccessAllowed] // Built into Base, also used by Framework. internal void DetachFromDispatcher() { _dispatcher = null; } ///that this /// is associated with. /// /// Checks that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that any thread can probe to /// see if it has access to the DispatcherObject. /// ////// True if the calling thread has access to this object. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public bool CheckAccess() { // This method is free-threaded. bool accessAllowed = true; Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { accessAllowed = dispatcher.CheckAccess(); } return accessAllowed; } ////// Verifies that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that derived classes can probe to /// see if the calling thread has access to itself. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public void VerifyAccess() { // This method is free-threaded. Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { dispatcher.VerifyAccess(); } } ////// Instantiate this object associated with the current Dispatcher. /// protected DispatcherObject() { _dispatcher = Dispatcher.CurrentDispatcher; } private Dispatcher _dispatcher; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Windows; using System.Threading; using MS.Internal.WindowsBase; // FriendAccessAllowed namespace System.Windows.Threading { ////// A DispatcherObject is an object associated with a /// ///. A DispatcherObject instance should /// only be access by the dispatcher's thread. /// /// Subclasses of public abstract class DispatcherObject { ///should enforce thread /// safety by calling on all their public /// methods to ensure the calling thread is the appropriate thread. /// /// DispatcherObject cannot be independently instantiated; that is, /// all constructors are protected. /// /// Returns the [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Advanced)] public Dispatcher Dispatcher { get { // This property is free-threaded. return _dispatcher; } } // This method allows certain derived classes to break the dispatcher affinity // of our objects. [FriendAccessAllowed] // Built into Base, also used by Framework. internal void DetachFromDispatcher() { _dispatcher = null; } ///that this /// is associated with. /// /// Checks that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that any thread can probe to /// see if it has access to the DispatcherObject. /// ////// True if the calling thread has access to this object. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public bool CheckAccess() { // This method is free-threaded. bool accessAllowed = true; Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { accessAllowed = dispatcher.CheckAccess(); } return accessAllowed; } ////// Verifies that the calling thread has access to this object. /// ////// Only the dispatcher thread may access DispatcherObjects. /// /// This method is public so that derived classes can probe to /// see if the calling thread has access to itself. /// [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)] public void VerifyAccess() { // This method is free-threaded. Dispatcher dispatcher = _dispatcher; // Note: a DispatcherObject that is not associated with a // dispatcher is considered to be free-threaded. if(dispatcher != null) { dispatcher.VerifyAccess(); } } ////// Instantiate this object associated with the current Dispatcher. /// protected DispatcherObject() { _dispatcher = Dispatcher.CurrentDispatcher; } private Dispatcher _dispatcher; } } // 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
- ClientUtils.cs
- MethodSet.cs
- StreamGeometryContext.cs
- DataGridViewDataErrorEventArgs.cs
- SkipStoryboardToFill.cs
- ParamArrayAttribute.cs
- ExclusiveCanonicalizationTransform.cs
- DataGridViewCellStyle.cs
- hwndwrapper.cs
- Stack.cs
- WebUtil.cs
- PreloadedPackages.cs
- ToolboxService.cs
- StringPropertyBuilder.cs
- PersonalizationState.cs
- SecurityTokenResolver.cs
- ValueSerializerAttribute.cs
- ArrayList.cs
- RefreshPropertiesAttribute.cs
- TableSectionStyle.cs
- SourceFileBuildProvider.cs
- ReadOnlyDictionary.cs
- JoinGraph.cs
- ConfigXmlSignificantWhitespace.cs
- TreeIterator.cs
- XmlStreamStore.cs
- ImageDrawing.cs
- GeneralTransform.cs
- ClientTargetCollection.cs
- DataTableCollection.cs
- DataGridViewColumnCollection.cs
- PeerApplicationLaunchInfo.cs
- ProvidersHelper.cs
- StringSource.cs
- DynamicDataExtensions.cs
- StateWorkerRequest.cs
- _SingleItemRequestCache.cs
- RotateTransform.cs
- TableLayout.cs
- DocumentSequence.cs
- PeerNearMe.cs
- SymmetricKeyWrap.cs
- DictionarySurrogate.cs
- BinaryUtilClasses.cs
- Directory.cs
- EntityDataSourceViewSchema.cs
- arabicshape.cs
- Helpers.cs
- UshortList2.cs
- DataGridViewCellValueEventArgs.cs
- IxmlLineInfo.cs
- DataBoundLiteralControl.cs
- PageBuildProvider.cs
- TimersDescriptionAttribute.cs
- HwndSourceKeyboardInputSite.cs
- StoryFragments.cs
- Wow64ConfigurationLoader.cs
- ReceiveContent.cs
- CounterCreationData.cs
- CryptoStream.cs
- SecurityRuntime.cs
- FunctionUpdateCommand.cs
- Storyboard.cs
- CompleteWizardStep.cs
- SignedPkcs7.cs
- IDQuery.cs
- DoubleAnimationUsingKeyFrames.cs
- AnimationLayer.cs
- GroupBox.cs
- LicenseContext.cs
- StorageConditionPropertyMapping.cs
- ContextActivityUtils.cs
- AccessDataSourceDesigner.cs
- Operators.cs
- XmlSchemaCompilationSettings.cs
- Constants.cs
- Tablet.cs
- WebPartCatalogCloseVerb.cs
- ActivityStateQuery.cs
- SettingsProperty.cs
- StringStorage.cs
- FrameworkElement.cs
- SaveLedgerEntryRequest.cs
- ContainerControl.cs
- COM2TypeInfoProcessor.cs
- RSAProtectedConfigurationProvider.cs
- EntityCollection.cs
- HasCopySemanticsAttribute.cs
- TextDecoration.cs
- ToolStripButton.cs
- DbConnectionPoolGroupProviderInfo.cs
- DeferredBinaryDeserializerExtension.cs
- SafeNativeMethods.cs
- ValidationHelper.cs
- ReadingWritingEntityEventArgs.cs
- ConfigXmlText.cs
- ListViewDataItem.cs
- FontCacheUtil.cs
- SharedPersonalizationStateInfo.cs
- DbConnectionFactory.cs