Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- WriteTimeStream.cs
- MenuCommands.cs
- UIElement3DAutomationPeer.cs
- Evidence.cs
- StylusPointProperties.cs
- PolicyUnit.cs
- ProcessingInstructionAction.cs
- BamlWriter.cs
- DropShadowBitmapEffect.cs
- GridViewRowEventArgs.cs
- ArgumentOutOfRangeException.cs
- CodeTypeParameter.cs
- ProvidePropertyAttribute.cs
- VisualSerializer.cs
- StagingAreaInputItem.cs
- DataStreamFromComStream.cs
- SplineKeyFrames.cs
- OperationCanceledException.cs
- DataGridViewCellLinkedList.cs
- ImageUrlEditor.cs
- DeferredBinaryDeserializerExtension.cs
- Vars.cs
- ToolStripScrollButton.cs
- SoapElementAttribute.cs
- ControlEvent.cs
- CodeExporter.cs
- Selector.cs
- UIElementIsland.cs
- DbConnectionInternal.cs
- SafeNativeMemoryHandle.cs
- GetWinFXPath.cs
- FormatConvertedBitmap.cs
- NetCodeGroup.cs
- BinaryNode.cs
- InternalTypeHelper.cs
- EmulateRecognizeCompletedEventArgs.cs
- SQLRoleProvider.cs
- StandardOleMarshalObject.cs
- ProgramPublisher.cs
- XmlSerializerNamespaces.cs
- Setter.cs
- DelayedRegex.cs
- EntityProviderFactory.cs
- RenderingEventArgs.cs
- SchemaLookupTable.cs
- ColumnMap.cs
- printdlgexmarshaler.cs
- TemplateControlBuildProvider.cs
- WebServiceFault.cs
- _NegoStream.cs
- HtmlImage.cs
- ObjectParameter.cs
- EditorReuseAttribute.cs
- ExternalDataExchangeService.cs
- GridEntry.cs
- IteratorDescriptor.cs
- CharKeyFrameCollection.cs
- TypeUnloadedException.cs
- FolderBrowserDialog.cs
- ListParaClient.cs
- ColumnWidthChangedEvent.cs
- QilIterator.cs
- DataKey.cs
- InkCanvasAutomationPeer.cs
- ImageDrawing.cs
- GcHandle.cs
- WindowsFormsSynchronizationContext.cs
- remotingproxy.cs
- AsymmetricKeyExchangeFormatter.cs
- DataGridColumnCollection.cs
- ClipboardProcessor.cs
- TextProperties.cs
- EndGetFileNameFromUserRequest.cs
- Evidence.cs
- Viewport3DVisual.cs
- ResourceSet.cs
- MarshalByRefObject.cs
- PositiveTimeSpanValidatorAttribute.cs
- CustomErrorCollection.cs
- OracleString.cs
- CacheEntry.cs
- CollectionViewGroupRoot.cs
- SmiContext.cs
- SplitContainer.cs
- BufferBuilder.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SrgsElementFactoryCompiler.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- PartialList.cs
- Util.cs
- HostingEnvironmentException.cs
- Utils.cs
- WebPartConnection.cs
- ParameterBuilder.cs
- FragmentNavigationEventArgs.cs
- WebRequestModuleElementCollection.cs
- DBCommandBuilder.cs
- TimeIntervalCollection.cs
- HyperLinkStyle.cs
- RelationshipFixer.cs