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
- SqlCacheDependencyDatabaseCollection.cs
- CommentGlyph.cs
- WebPartVerbsEventArgs.cs
- FormatVersion.cs
- DataServiceClientException.cs
- MemberDomainMap.cs
- VersionedStream.cs
- EdmProviderManifest.cs
- ClientBuildManager.cs
- parserscommon.cs
- PeerContact.cs
- ValidatorCompatibilityHelper.cs
- SafeFileMapViewHandle.cs
- Vector3DAnimation.cs
- FileVersion.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- MsmqAppDomainProtocolHandler.cs
- FactoryGenerator.cs
- CopyCodeAction.cs
- SqlClientWrapperSmiStreamChars.cs
- StringAnimationBase.cs
- DataView.cs
- CqlLexerHelpers.cs
- AxHostDesigner.cs
- URL.cs
- CatchBlock.cs
- DataGridViewColumnCollectionEditor.cs
- Utility.cs
- HostedBindingBehavior.cs
- WinFormsComponentEditor.cs
- ArgumentsParser.cs
- MethodMessage.cs
- KeyedCollection.cs
- HttpResponseInternalWrapper.cs
- ConvertEvent.cs
- LocalizabilityAttribute.cs
- TextContainerChangedEventArgs.cs
- ReadContentAsBinaryHelper.cs
- VideoDrawing.cs
- WebRequestModuleElementCollection.cs
- CodeSnippetTypeMember.cs
- ProxyGenerationError.cs
- BoolExpressionVisitors.cs
- ReflectEventDescriptor.cs
- Base64Encoder.cs
- BuildProviderUtils.cs
- _CommandStream.cs
- GuidelineSet.cs
- AnnotationMap.cs
- WriteTimeStream.cs
- LinqDataSource.cs
- Figure.cs
- DataBinding.cs
- DataGridItemCollection.cs
- PseudoWebRequest.cs
- ParamArrayAttribute.cs
- SQLMoney.cs
- ResourcesChangeInfo.cs
- CodeAttributeArgument.cs
- ActionMessageFilter.cs
- SqlDependencyListener.cs
- WorkflowMessageEventArgs.cs
- WorkflowLayouts.cs
- HandleRef.cs
- CssStyleCollection.cs
- AppSettingsExpressionEditor.cs
- Trigger.cs
- XslCompiledTransform.cs
- GeneralTransformGroup.cs
- ConstrainedGroup.cs
- QEncodedStream.cs
- OrderByLifter.cs
- SessionIDManager.cs
- HostVisual.cs
- XmlSerializerImportOptions.cs
- PeerObject.cs
- BitmapCache.cs
- XmlHelper.cs
- ManifestResourceInfo.cs
- MediaEntryAttribute.cs
- Model3DCollection.cs
- FixUp.cs
- XamlInterfaces.cs
- MergeLocalizationDirectives.cs
- InplaceBitmapMetadataWriter.cs
- WindowsFormsHost.cs
- BufferModeSettings.cs
- ToolStripComboBox.cs
- StylusDownEventArgs.cs
- Pair.cs
- SafeLocalMemHandle.cs
- COM2ExtendedTypeConverter.cs
- MappingItemCollection.cs
- DataServiceRequest.cs
- SymbolEqualComparer.cs
- Comparer.cs
- TimeIntervalCollection.cs
- ConfigurationProviderException.cs
- HotSpot.cs
- SerializationSectionGroup.cs