Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / Threading / DispatcherObject.cs / 1305600 / 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
- XPathAxisIterator.cs
- Confirm.cs
- SyncMethodInvoker.cs
- ColorConvertedBitmapExtension.cs
- SourceItem.cs
- KeyboardEventArgs.cs
- CapabilitiesSection.cs
- HwndHostAutomationPeer.cs
- figurelength.cs
- Drawing.cs
- SiteMapNode.cs
- columnmapkeybuilder.cs
- PageAsyncTaskManager.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- ScrollBarRenderer.cs
- XmlnsDefinitionAttribute.cs
- ExtensibleClassFactory.cs
- PropertyOverridesTypeEditor.cs
- FormParameter.cs
- RuleSettings.cs
- KnownTypesHelper.cs
- ListViewCommandEventArgs.cs
- ControlCachePolicy.cs
- WindowShowOrOpenTracker.cs
- XmlMembersMapping.cs
- DependencyObjectType.cs
- SlipBehavior.cs
- TemplatePartAttribute.cs
- rsa.cs
- AttributedMetaModel.cs
- HashHelper.cs
- ImageAutomationPeer.cs
- _CookieModule.cs
- TimeZone.cs
- EventArgs.cs
- SqlProvider.cs
- CustomTrackingRecord.cs
- RoutedEventConverter.cs
- FileNotFoundException.cs
- DbSetClause.cs
- CacheForPrimitiveTypes.cs
- SynchronizationContext.cs
- SoapIgnoreAttribute.cs
- ErrorView.xaml.cs
- EntityContainer.cs
- ActivityScheduledQuery.cs
- ControlIdConverter.cs
- PlaceHolder.cs
- ScalarConstant.cs
- GeometryHitTestResult.cs
- SecurityPermission.cs
- BrushMappingModeValidation.cs
- SystemIcons.cs
- TextModifier.cs
- HtmlGenericControl.cs
- SizeAnimation.cs
- PriorityQueue.cs
- DeclarativeCatalogPart.cs
- CharAnimationUsingKeyFrames.cs
- ClientSection.cs
- WebPartConnectionsDisconnectVerb.cs
- EmptyElement.cs
- DisplayInformation.cs
- _CacheStreams.cs
- CodeIdentifiers.cs
- BrowserInteropHelper.cs
- Vector3dCollection.cs
- EntityTypeEmitter.cs
- ColorKeyFrameCollection.cs
- Transactions.cs
- SerializationSectionGroup.cs
- HostedHttpContext.cs
- GiveFeedbackEventArgs.cs
- XmlAttributeAttribute.cs
- OleDbRowUpdatedEvent.cs
- HtmlEncodedRawTextWriter.cs
- CodeSnippetCompileUnit.cs
- NullRuntimeConfig.cs
- ObjectListCommandCollection.cs
- BrowserInteropHelper.cs
- PrtCap_Public.cs
- ProfileParameter.cs
- PropertyMapper.cs
- Atom10FormatterFactory.cs
- Selection.cs
- DataGridView.cs
- WsiProfilesElementCollection.cs
- SerialErrors.cs
- InkCanvasInnerCanvas.cs
- KnownBoxes.cs
- IndependentlyAnimatedPropertyMetadata.cs
- DataPager.cs
- ConditionalAttribute.cs
- TextChangedEventArgs.cs
- LocalizationParserHooks.cs
- BamlMapTable.cs
- rsa.cs
- Classification.cs
- DataGridViewRowCollection.cs
- RelationHandler.cs