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
- ClientBuildManager.cs
- LockCookie.cs
- Geometry.cs
- DebugControllerThread.cs
- CompilationRelaxations.cs
- DbBuffer.cs
- Graphics.cs
- StringAnimationBase.cs
- Utils.cs
- NullableDecimalSumAggregationOperator.cs
- GlobalAllocSafeHandle.cs
- PolicyManager.cs
- RootCodeDomSerializer.cs
- XmlReader.cs
- AnimationException.cs
- SHA384.cs
- MemoryStream.cs
- ToolStrip.cs
- HttpCapabilitiesEvaluator.cs
- CorrelationQuery.cs
- KeyToListMap.cs
- IOException.cs
- TextBoxRenderer.cs
- PointAnimation.cs
- BaseEntityWrapper.cs
- SecurityUtils.cs
- PassportIdentity.cs
- DbInsertCommandTree.cs
- UndirectedGraph.cs
- CodeAttachEventStatement.cs
- ProtocolViolationException.cs
- KeyValuePair.cs
- BooleanExpr.cs
- ActivityMetadata.cs
- FixedTextPointer.cs
- TileBrush.cs
- WinCategoryAttribute.cs
- TableRow.cs
- AvTrace.cs
- CheckBoxFlatAdapter.cs
- FixedDocument.cs
- InterleavedZipPartStream.cs
- NativeMethods.cs
- DesignerFrame.cs
- NamespaceMapping.cs
- followingquery.cs
- HandoffBehavior.cs
- OpenFileDialog.cs
- Group.cs
- BypassElementCollection.cs
- _DigestClient.cs
- PerspectiveCamera.cs
- Types.cs
- FilteredReadOnlyMetadataCollection.cs
- EditorZoneDesigner.cs
- newinstructionaction.cs
- Emitter.cs
- WorkerRequest.cs
- QilXmlReader.cs
- TypefaceCollection.cs
- NativeMethods.cs
- BinaryObjectReader.cs
- TextDecorationUnitValidation.cs
- GenericAuthenticationEventArgs.cs
- Int64Animation.cs
- HandlerWithFactory.cs
- SingleSelectRootGridEntry.cs
- DelegateArgument.cs
- SID.cs
- CapiSymmetricAlgorithm.cs
- Module.cs
- TextDpi.cs
- DataTableTypeConverter.cs
- Underline.cs
- StreamGeometryContext.cs
- ExpressionBuilderContext.cs
- XmlDocument.cs
- WebPartMenu.cs
- SqlBuilder.cs
- AsyncDataRequest.cs
- precedingsibling.cs
- ProfileService.cs
- PasswordDeriveBytes.cs
- XmlWriter.cs
- DbgCompiler.cs
- PolicyManager.cs
- CqlWriter.cs
- DesignTimeVisibleAttribute.cs
- EditorServiceContext.cs
- IDictionary.cs
- BasicCommandTreeVisitor.cs
- COM2ICategorizePropertiesHandler.cs
- DodSequenceMerge.cs
- precedingsibling.cs
- MetadataProperty.cs
- Stylesheet.cs
- IsolatedStorageFilePermission.cs
- ScrollBar.cs
- XmlWriterSettings.cs
- GradientSpreadMethodValidation.cs