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
- PersistenceProviderDirectory.cs
- SigningProgress.cs
- StyleHelper.cs
- AdCreatedEventArgs.cs
- ContainerSelectorActiveEvent.cs
- CapabilitiesSection.cs
- RepeatInfo.cs
- IntPtr.cs
- ScheduleChanges.cs
- TextServicesHost.cs
- ReceiveSecurityHeader.cs
- DataContractAttribute.cs
- ZipIOCentralDirectoryBlock.cs
- CodeDelegateCreateExpression.cs
- CodeStatement.cs
- BorderGapMaskConverter.cs
- Point4DConverter.cs
- DataGridState.cs
- SafeIUnknown.cs
- WebPartDeleteVerb.cs
- TokenizerHelper.cs
- StrongBox.cs
- PartialCachingAttribute.cs
- TreeViewEvent.cs
- RawStylusSystemGestureInputReport.cs
- DbExpressionVisitor.cs
- DoubleLinkList.cs
- RTTypeWrapper.cs
- keycontainerpermission.cs
- WebPartManagerInternals.cs
- PageThemeBuildProvider.cs
- Hex.cs
- X509SubjectKeyIdentifierClause.cs
- HtmlTableCellCollection.cs
- ObjectAnimationBase.cs
- StretchValidation.cs
- DataGridViewUtilities.cs
- MultiPropertyDescriptorGridEntry.cs
- Italic.cs
- TransformationRules.cs
- PriorityItem.cs
- XPathParser.cs
- WindowInteractionStateTracker.cs
- Interlocked.cs
- ArithmeticException.cs
- ObjectListShowCommandsEventArgs.cs
- ConfigurationSectionGroupCollection.cs
- DataSourceNameHandler.cs
- DocumentApplicationJournalEntry.cs
- ListMarkerSourceInfo.cs
- Vector3DCollectionValueSerializer.cs
- BulletChrome.cs
- AddInStore.cs
- ToolboxComponentsCreatedEventArgs.cs
- SoapIncludeAttribute.cs
- SchemaCollectionCompiler.cs
- DataServiceQueryOfT.cs
- PtsCache.cs
- ProjectionAnalyzer.cs
- HttpException.cs
- LinqDataSourceHelper.cs
- CalendarDesigner.cs
- LinearGradientBrush.cs
- SerialStream.cs
- WindowsImpersonationContext.cs
- PointCollection.cs
- FlowDocumentView.cs
- GroupDescription.cs
- HyperLinkDataBindingHandler.cs
- SqlRowUpdatingEvent.cs
- PersonalizationEntry.cs
- BoundColumn.cs
- DataGridViewDataErrorEventArgs.cs
- OneOfElement.cs
- PropertyChangedEventManager.cs
- SqlTypeSystemProvider.cs
- SecurityManager.cs
- State.cs
- PassportAuthenticationEventArgs.cs
- StorageComplexPropertyMapping.cs
- MetadataSource.cs
- CfgParser.cs
- listitem.cs
- KeysConverter.cs
- BindingContext.cs
- ConsoleCancelEventArgs.cs
- XmlDeclaration.cs
- UpdateExpressionVisitor.cs
- XmlObjectSerializerReadContext.cs
- FontConverter.cs
- AlphaSortedEnumConverter.cs
- MouseEvent.cs
- TraceContextRecord.cs
- EventLogTraceListener.cs
- Perspective.cs
- ContextMarshalException.cs
- Debug.cs
- DbExpressionVisitor_TResultType.cs
- DocumentXPathNavigator.cs
- FromRequest.cs