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
- XmlKeywords.cs
- DesignOnlyAttribute.cs
- ExpressionPrefixAttribute.cs
- RoutedEventValueSerializer.cs
- TransactionFilter.cs
- XmlDocumentSerializer.cs
- RuntimeHandles.cs
- TrackingMemoryStreamFactory.cs
- ToolboxService.cs
- ThicknessKeyFrameCollection.cs
- CroppedBitmap.cs
- ContentElementAutomationPeer.cs
- ConnectionPointCookie.cs
- TextPointerBase.cs
- EventPropertyMap.cs
- _FixedSizeReader.cs
- Util.cs
- ScrollProperties.cs
- D3DImage.cs
- GlyphInfoList.cs
- InputManager.cs
- PackagingUtilities.cs
- OraclePermissionAttribute.cs
- ManifestResourceInfo.cs
- HttpModuleActionCollection.cs
- TransformGroup.cs
- MediaElement.cs
- RemoteAsymmetricSignatureFormatter.cs
- SqlRowUpdatingEvent.cs
- BinaryFormatterWriter.cs
- _ListenerRequestStream.cs
- UseLicense.cs
- METAHEADER.cs
- EpmContentSerializer.cs
- InkCanvasFeedbackAdorner.cs
- StateRuntime.cs
- TypeUsage.cs
- ExpressionParser.cs
- ModifiableIteratorCollection.cs
- FileFormatException.cs
- MarginsConverter.cs
- ToolboxComponentsCreatedEventArgs.cs
- UnsafeNativeMethods.cs
- ViewManager.cs
- Soap.cs
- RegisteredDisposeScript.cs
- DeclarativeCatalogPartDesigner.cs
- LocalClientSecuritySettings.cs
- FragmentQuery.cs
- CanExecuteRoutedEventArgs.cs
- _AcceptOverlappedAsyncResult.cs
- SkewTransform.cs
- BmpBitmapDecoder.cs
- WebPartManager.cs
- MarkupExtensionReturnTypeAttribute.cs
- WSDualHttpSecurityMode.cs
- CompilationUtil.cs
- ReaderContextStackData.cs
- MethodToken.cs
- Win32Native.cs
- ConfigXmlSignificantWhitespace.cs
- Collection.cs
- AsmxEndpointPickerExtension.cs
- WindowsListViewItem.cs
- DesignerVerbCollection.cs
- NamedPipeChannelFactory.cs
- DBSchemaRow.cs
- ClientTarget.cs
- ConfigXmlComment.cs
- GeneralTransformGroup.cs
- ImageMap.cs
- TextMetrics.cs
- TypePresenter.xaml.cs
- NominalTypeEliminator.cs
- DynamicMethod.cs
- OdbcCommandBuilder.cs
- odbcmetadatafactory.cs
- NativeMethods.cs
- MessageEnumerator.cs
- StringReader.cs
- RemotingException.cs
- DrawingGroup.cs
- ToolStripManager.cs
- NamedElement.cs
- NameValueConfigurationElement.cs
- EncoderExceptionFallback.cs
- PointCollection.cs
- SqlBooleanizer.cs
- LoadWorkflowCommand.cs
- ProviderCommandInfoUtils.cs
- AuthenticationModuleElementCollection.cs
- Helper.cs
- DllHostedComPlusServiceHost.cs
- NamespaceTable.cs
- Trigger.cs
- OraclePermission.cs
- GregorianCalendarHelper.cs
- AdornerPresentationContext.cs
- PathGeometry.cs
- GridViewUpdatedEventArgs.cs