Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectMemberMapping.cs
- TableParagraph.cs
- ButtonChrome.cs
- ScrollItemPattern.cs
- ThicknessAnimationUsingKeyFrames.cs
- SettingsPropertyCollection.cs
- TypeDescriptionProviderAttribute.cs
- ButtonBaseAdapter.cs
- BaseParaClient.cs
- PageContent.cs
- AccessedThroughPropertyAttribute.cs
- MdiWindowListItemConverter.cs
- OracleTransaction.cs
- JsonSerializer.cs
- ProfileEventArgs.cs
- BindingGroup.cs
- SpeechAudioFormatInfo.cs
- Attributes.cs
- XmlUrlResolver.cs
- SimpleApplicationHost.cs
- Message.cs
- SerializationSectionGroup.cs
- CodeIndexerExpression.cs
- MembershipUser.cs
- MILUtilities.cs
- ClientConfigPaths.cs
- DataGridViewMethods.cs
- TraceRecord.cs
- TextComposition.cs
- X509ImageLogo.cs
- ServiceOperationViewControl.cs
- ListMarkerLine.cs
- LocalFileSettingsProvider.cs
- VisualStateChangedEventArgs.cs
- XmlHelper.cs
- ServiceDefaults.cs
- LambdaReference.cs
- DeviceContexts.cs
- DocumentCollection.cs
- XmlEncodedRawTextWriter.cs
- ConfigXmlAttribute.cs
- Compilation.cs
- VectorAnimationBase.cs
- _CacheStreams.cs
- ContentPresenter.cs
- CompiledIdentityConstraint.cs
- PostBackTrigger.cs
- BamlTreeNode.cs
- entityreference_tresulttype.cs
- DataGridViewCellLinkedList.cs
- SHA1Managed.cs
- XmlSchemaNotation.cs
- QuadraticBezierSegment.cs
- WebPartConnectionCollection.cs
- DBCommandBuilder.cs
- ValidationErrorEventArgs.cs
- Typeface.cs
- ReflectionTypeLoadException.cs
- RotationValidation.cs
- AxHost.cs
- AnonymousIdentificationModule.cs
- RecommendedAsConfigurableAttribute.cs
- ColumnClickEvent.cs
- BitmapCodecInfoInternal.cs
- ServiceNameElement.cs
- PagesSection.cs
- WindowsRegion.cs
- DESCryptoServiceProvider.cs
- CharacterMetricsDictionary.cs
- WorkflowOperationInvoker.cs
- LineServicesRun.cs
- InstancePersistenceCommandException.cs
- Help.cs
- SecurityKeyUsage.cs
- ImageCodecInfo.cs
- CompleteWizardStep.cs
- InstanceDescriptor.cs
- StringArrayConverter.cs
- PrintPreviewDialog.cs
- AliasExpr.cs
- ResourceManager.cs
- SequentialActivityDesigner.cs
- ViewManager.cs
- FollowerQueueCreator.cs
- RuleInfoComparer.cs
- ReadOnlyObservableCollection.cs
- UniqueIdentifierService.cs
- COM2FontConverter.cs
- UnsafeNetInfoNativeMethods.cs
- FrameworkContextData.cs
- TextSchema.cs
- HttpProfileBase.cs
- NumberFormatInfo.cs
- SmiMetaDataProperty.cs
- XmlRootAttribute.cs
- QuerySafeNavigator.cs
- DiscardableAttribute.cs
- BevelBitmapEffect.cs
- AsyncCompletedEventArgs.cs
- InfoCardProofToken.cs