Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Utility.cs
- AnimationException.cs
- WhileDesigner.cs
- AppSecurityManager.cs
- SubqueryRules.cs
- PrimitiveType.cs
- ACL.cs
- safex509handles.cs
- CryptoHandle.cs
- DataGridViewCellStyle.cs
- AvTraceDetails.cs
- EntityChangedParams.cs
- SystemWebExtensionsSectionGroup.cs
- GridView.cs
- CreateDataSourceDialog.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- M3DUtil.cs
- Span.cs
- ChtmlPageAdapter.cs
- HwndProxyElementProvider.cs
- RealizationContext.cs
- TypeConverter.cs
- WorkflowServiceHost.cs
- AliasGenerator.cs
- InputProcessorProfiles.cs
- SecurityTokenAttachmentMode.cs
- PlaceHolder.cs
- Grammar.cs
- CompModSwitches.cs
- TableLayoutCellPaintEventArgs.cs
- TextTreePropertyUndoUnit.cs
- QilXmlWriter.cs
- RuntimeWrappedException.cs
- DocumentXmlWriter.cs
- SortQuery.cs
- PackWebRequest.cs
- NaturalLanguageHyphenator.cs
- _FtpControlStream.cs
- TextParentUndoUnit.cs
- Calendar.cs
- SkipQueryOptionExpression.cs
- XmlName.cs
- GridViewRowCollection.cs
- SapiAttributeParser.cs
- TextStore.cs
- LinqDataSourceEditData.cs
- EUCJPEncoding.cs
- AssemblyName.cs
- SecurityHeaderTokenResolver.cs
- GridPatternIdentifiers.cs
- XmlExtensionFunction.cs
- BorderSidesEditor.cs
- Win32.cs
- CurrentChangedEventManager.cs
- RelationshipEndCollection.cs
- AspCompat.cs
- PreservationFileReader.cs
- SqlDataSourceRefreshSchemaForm.cs
- CallSiteOps.cs
- ValidatorUtils.cs
- DataServiceKeyAttribute.cs
- UnauthorizedAccessException.cs
- ReadOnlyDataSourceView.cs
- DataGridViewColumnTypeEditor.cs
- ChangeNode.cs
- GenerateHelper.cs
- BitmapMetadataEnumerator.cs
- DropDownList.cs
- AdministrationHelpers.cs
- Peer.cs
- ValueUnavailableException.cs
- FixedTextBuilder.cs
- FileAuthorizationModule.cs
- DataKey.cs
- OptionUsage.cs
- BadImageFormatException.cs
- AnnotationStore.cs
- CorrelationManager.cs
- PropertyTabAttribute.cs
- precedingsibling.cs
- ControlHelper.cs
- XmlSerializationGeneratedCode.cs
- ContainerVisual.cs
- OutputCacheModule.cs
- TypeElementCollection.cs
- ErrorInfoXmlDocument.cs
- SystemIPv6InterfaceProperties.cs
- JsonGlobals.cs
- LayoutExceptionEventArgs.cs
- WebUtil.cs
- TablePattern.cs
- NestedContainer.cs
- LineUtil.cs
- AlternateViewCollection.cs
- ClientScriptManagerWrapper.cs
- PropertyConverter.cs
- MappingException.cs
- ColumnResizeUndoUnit.cs
- ImageMapEventArgs.cs
- SafeEventLogWriteHandle.cs