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
- AsymmetricSecurityBindingElement.cs
- XMLSyntaxException.cs
- XmlArrayAttribute.cs
- DataTableTypeConverter.cs
- ServiceConfigurationTraceRecord.cs
- InvalidCastException.cs
- SBCSCodePageEncoding.cs
- TemplateBindingExpressionConverter.cs
- CompatibleIComparer.cs
- OracleInfoMessageEventArgs.cs
- VisualTransition.cs
- InternalException.cs
- FixedTextSelectionProcessor.cs
- FunctionNode.cs
- ExtendedProtectionPolicy.cs
- HostedHttpContext.cs
- DomNameTable.cs
- MessageQueueEnumerator.cs
- TrackBarDesigner.cs
- StylusPointPropertyId.cs
- DocumentScope.cs
- WmlTextBoxAdapter.cs
- ToolStripControlHost.cs
- NotSupportedException.cs
- FormDesigner.cs
- WebColorConverter.cs
- TypeConverterAttribute.cs
- XPathNodeIterator.cs
- HttpHandlerActionCollection.cs
- PassportPrincipal.cs
- metadatamappinghashervisitor.cs
- RectangleGeometry.cs
- TaskFormBase.cs
- FontSourceCollection.cs
- VScrollProperties.cs
- DataTemplateKey.cs
- CachedCompositeFamily.cs
- PrintDocument.cs
- DataPagerField.cs
- XmlDocumentViewSchema.cs
- LeaseManager.cs
- ReadingWritingEntityEventArgs.cs
- RelatedImageListAttribute.cs
- DesignTableCollection.cs
- PageParser.cs
- EncryptedPackage.cs
- PolicyUtility.cs
- DescendantBaseQuery.cs
- BatchWriter.cs
- SqlCrossApplyToCrossJoin.cs
- RootBrowserWindowAutomationPeer.cs
- DesignerEventService.cs
- DataGridViewTopRowAccessibleObject.cs
- DataGridItemAttachedStorage.cs
- PointLightBase.cs
- TextRenderer.cs
- HttpGetProtocolImporter.cs
- ProtocolsConfigurationHandler.cs
- ToolStripPanelCell.cs
- AutomationProperty.cs
- WsdlBuildProvider.cs
- SubMenuStyle.cs
- QueueSurrogate.cs
- AnnotationHighlightLayer.cs
- XmlName.cs
- _ChunkParse.cs
- ProfileService.cs
- StreamUpgradeBindingElement.cs
- IntegerValidator.cs
- NameTable.cs
- WebExceptionStatus.cs
- HwndSource.cs
- DBDataPermission.cs
- MethodCallTranslator.cs
- GuidelineSet.cs
- FontDialog.cs
- IsolationInterop.cs
- QuotedPrintableStream.cs
- SignedInfo.cs
- WindowsTooltip.cs
- ChtmlTextWriter.cs
- CompiledQuery.cs
- OneOfConst.cs
- WebPartCancelEventArgs.cs
- NavigationEventArgs.cs
- HttpInputStream.cs
- SurrogateSelector.cs
- ConstructorExpr.cs
- SqlComparer.cs
- DBSchemaRow.cs
- DeferrableContent.cs
- DetailsViewPageEventArgs.cs
- SiteOfOriginContainer.cs
- OverloadGroupAttribute.cs
- CacheMode.cs
- DummyDataSource.cs
- TempEnvironment.cs
- URLString.cs
- ToolStripRendererSwitcher.cs
- SecurityListenerSettingsLifetimeManager.cs