Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- CompilerLocalReference.cs
- EntityContainer.cs
- DeviceFiltersSection.cs
- _ListenerRequestStream.cs
- SerialStream.cs
- OutputCacheModule.cs
- EtwTrackingBehavior.cs
- HttpException.cs
- StdValidatorsAndConverters.cs
- MinimizableAttributeTypeConverter.cs
- PropertyToken.cs
- RowToParametersTransformer.cs
- Renderer.cs
- Rect3DValueSerializer.cs
- TableRowGroup.cs
- GetPageNumberCompletedEventArgs.cs
- CrossAppDomainChannel.cs
- ObservableCollectionDefaultValueFactory.cs
- ConnectionManagementElementCollection.cs
- TypeUtil.cs
- Sequence.cs
- RoleGroup.cs
- ExpandCollapseProviderWrapper.cs
- ProfileSettings.cs
- Win32MouseDevice.cs
- Stream.cs
- MultipartIdentifier.cs
- BmpBitmapDecoder.cs
- TextRunCache.cs
- Clock.cs
- InlineCollection.cs
- Semaphore.cs
- SQLInt16Storage.cs
- AsyncPostBackErrorEventArgs.cs
- CodeNamespaceImportCollection.cs
- ContextQuery.cs
- SafeRegistryHandle.cs
- ImageConverter.cs
- DispatcherSynchronizationContext.cs
- LinkedResource.cs
- ToolStripScrollButton.cs
- ParserHooks.cs
- CoTaskMemHandle.cs
- Deflater.cs
- Crc32.cs
- HighlightComponent.cs
- CompilerInfo.cs
- ConfigXmlCDataSection.cs
- DesignerTextWriter.cs
- QilNode.cs
- HScrollProperties.cs
- StrokeNodeEnumerator.cs
- TokenBasedSet.cs
- XmlDownloadManager.cs
- MsmqBindingMonitor.cs
- DrawingAttributesDefaultValueFactory.cs
- EnumCodeDomSerializer.cs
- SoapHeader.cs
- LinkedList.cs
- BitmapEffectInputConnector.cs
- OdbcDataReader.cs
- BindingMAnagerBase.cs
- TrackingStringDictionary.cs
- streamingZipPartStream.cs
- Part.cs
- DataGridViewAutoSizeModeEventArgs.cs
- SqlCacheDependencySection.cs
- SafeFileMappingHandle.cs
- ObjectParameter.cs
- BatchServiceHost.cs
- VisualTreeHelper.cs
- NodeInfo.cs
- GenericWebPart.cs
- Application.cs
- VectorAnimationUsingKeyFrames.cs
- ISCIIEncoding.cs
- RecognizedAudio.cs
- Dispatcher.cs
- StorageMappingItemCollection.cs
- WindowsAuthenticationModule.cs
- ChtmlCalendarAdapter.cs
- DeviceFiltersSection.cs
- ItemCheckEvent.cs
- CodeTypeMemberCollection.cs
- MarkupCompiler.cs
- WorkflowInstanceSuspendedRecord.cs
- HttpStreamFormatter.cs
- DisplayNameAttribute.cs
- TableLayoutSettings.cs
- XPathAncestorIterator.cs
- FrameworkContentElement.cs
- AsymmetricKeyExchangeDeformatter.cs
- StylusOverProperty.cs
- SoapIgnoreAttribute.cs
- UserPersonalizationStateInfo.cs
- MimeFormImporter.cs
- GreenMethods.cs
- SqlParameter.cs
- SmtpNetworkElement.cs
- TextEditorThreadLocalStore.cs