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
- HitTestParameters.cs
- TileBrush.cs
- LocatorGroup.cs
- EllipseGeometry.cs
- ToolBarButtonDesigner.cs
- WinEventWrap.cs
- AnnotationHelper.cs
- DefaultExpressionVisitor.cs
- NumberSubstitution.cs
- FixedSOMPage.cs
- ImageIndexConverter.cs
- DesignTimeTemplateParser.cs
- XmlAttributes.cs
- DesigntimeLicenseContext.cs
- Rectangle.cs
- ProvideValueServiceProvider.cs
- AudioDeviceOut.cs
- ProvidePropertyAttribute.cs
- EditorPartCollection.cs
- ConfigXmlText.cs
- MSAAWinEventWrap.cs
- ImpersonationContext.cs
- ItemCheckEvent.cs
- Function.cs
- File.cs
- GridPatternIdentifiers.cs
- DocumentReferenceCollection.cs
- NumberFunctions.cs
- PartitionedDataSource.cs
- WorkflowViewService.cs
- AuthorizationSection.cs
- CompensatableTransactionScopeActivity.cs
- ClientSideProviderDescription.cs
- HttpCacheVary.cs
- FormViewUpdatedEventArgs.cs
- MenuItemAutomationPeer.cs
- TextEditorDragDrop.cs
- TreeNodeStyle.cs
- BinaryObjectReader.cs
- CatalogPartChrome.cs
- LongValidator.cs
- WindowsIdentity.cs
- TextTreeFixupNode.cs
- HandlerBase.cs
- MinimizableAttributeTypeConverter.cs
- DecimalAnimationBase.cs
- FactoryRecord.cs
- MetadataPropertyvalue.cs
- BaseAppDomainProtocolHandler.cs
- _emptywebproxy.cs
- EntityViewGenerationAttribute.cs
- OdbcErrorCollection.cs
- SmiRequestExecutor.cs
- XmlConvert.cs
- ScrollItemProviderWrapper.cs
- XmlDeclaration.cs
- AspNetSynchronizationContext.cs
- Transactions.cs
- XslUrlEditor.cs
- WindowsGraphics2.cs
- ControlPropertyNameConverter.cs
- ConfigXmlWhitespace.cs
- SequenceNumber.cs
- ServicesUtilities.cs
- ObfuscateAssemblyAttribute.cs
- WebCategoryAttribute.cs
- ACE.cs
- PropertyValueUIItem.cs
- Char.cs
- FlowDocumentReaderAutomationPeer.cs
- XmlReturnWriter.cs
- StringUtil.cs
- LocalizationParserHooks.cs
- PropertyNames.cs
- RawStylusActions.cs
- IODescriptionAttribute.cs
- TypeTypeConverter.cs
- ComPlusServiceLoader.cs
- TextWriter.cs
- DataBoundControlAdapter.cs
- TypeSystem.cs
- ClipboardProcessor.cs
- wgx_render.cs
- EventLogPermissionAttribute.cs
- UInt32Converter.cs
- CompModSwitches.cs
- EdmConstants.cs
- ListViewDataItem.cs
- ValidationSummary.cs
- Relationship.cs
- WindowInteropHelper.cs
- FlowDocumentReaderAutomationPeer.cs
- ConfigurationSectionCollection.cs
- InternalControlCollection.cs
- Asn1IntegerConverter.cs
- ReachBasicContext.cs
- Hashtable.cs
- SQLBoolean.cs
- ConfigurationStrings.cs
- DBConnection.cs