Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- ToolStripPanelRow.cs
- BindingCollection.cs
- TripleDESCryptoServiceProvider.cs
- UrlMappingsSection.cs
- XmlSchemas.cs
- DependencySource.cs
- ValueConversionAttribute.cs
- WebControlsSection.cs
- HttpProfileBase.cs
- ProfileEventArgs.cs
- Message.cs
- StringComparer.cs
- TypeInfo.cs
- ToolboxItemFilterAttribute.cs
- CodeSubDirectoriesCollection.cs
- VariantWrapper.cs
- SafeSecurityHandles.cs
- WeakRefEnumerator.cs
- WebPartConnectionsCloseVerb.cs
- _KerberosClient.cs
- RadialGradientBrush.cs
- VisualBrush.cs
- PeerNearMe.cs
- Focus.cs
- ControlIdConverter.cs
- GridViewColumnHeader.cs
- HttpModule.cs
- ControlIdConverter.cs
- indexingfiltermarshaler.cs
- ValueTypeFixupInfo.cs
- ReadOnlyObservableCollection.cs
- QuaternionRotation3D.cs
- IPHostEntry.cs
- ClassicBorderDecorator.cs
- SettingsPropertyValue.cs
- RegistrationServices.cs
- DetailsViewActionList.cs
- PageCatalogPart.cs
- PrinterSettings.cs
- Color.cs
- SyndicationElementExtensionCollection.cs
- OneOfElement.cs
- ResourcePermissionBase.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- PageRequestManager.cs
- ThemeDirectoryCompiler.cs
- Peer.cs
- FixedFlowMap.cs
- PropertyValueChangedEvent.cs
- Byte.cs
- Propagator.Evaluator.cs
- AnnotationDocumentPaginator.cs
- HttpApplication.cs
- UriTemplateClientFormatter.cs
- SponsorHelper.cs
- InternalConfigHost.cs
- Cursor.cs
- Wildcard.cs
- OutputCacheModule.cs
- SponsorHelper.cs
- unsafeIndexingFilterStream.cs
- BufferedReadStream.cs
- ClientConfigurationSystem.cs
- PolicyDesigner.cs
- TextBox.cs
- ToolStripItemRenderEventArgs.cs
- ClockController.cs
- ValueChangedEventManager.cs
- ContentOperations.cs
- LinkedDataMemberFieldEditor.cs
- StorageEntityTypeMapping.cs
- __Error.cs
- TableAdapterManagerGenerator.cs
- errorpatternmatcher.cs
- NetworkInformationException.cs
- SqlException.cs
- Int32Animation.cs
- ToolStripMenuItem.cs
- KnownTypesHelper.cs
- GetCardDetailsRequest.cs
- TypedAsyncResult.cs
- Events.cs
- ResponseStream.cs
- BitStack.cs
- SourceElementsCollection.cs
- DetailsViewUpdateEventArgs.cs
- GridViewEditEventArgs.cs
- RequestCachePolicy.cs
- ReflectionServiceProvider.cs
- ShaperBuffers.cs
- ButtonAutomationPeer.cs
- SecurityUtils.cs
- UnsafeNativeMethods.cs
- EqualityComparer.cs
- EventProviderBase.cs
- WorkingDirectoryEditor.cs
- HMACSHA1.cs
- InteropBitmapSource.cs
- BamlRecordReader.cs
- JsonUriDataContract.cs