Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / Threading / DispatcherObject.cs / 1305600 / 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
- BamlLocalizer.cs
- Attributes.cs
- StdRegProviderWrapper.cs
- PlaceHolder.cs
- WebBrowserNavigatedEventHandler.cs
- Tablet.cs
- ComplexTypeEmitter.cs
- MethodCallTranslator.cs
- ImageFormat.cs
- WindowsUpDown.cs
- XmlNamespaceDeclarationsAttribute.cs
- ActivityBuilderHelper.cs
- HijriCalendar.cs
- GAC.cs
- UidPropertyAttribute.cs
- ReadOnlyAttribute.cs
- GeometryGroup.cs
- DataGridColumnCollection.cs
- MouseDevice.cs
- StorageModelBuildProvider.cs
- ContextProperty.cs
- ProxyFragment.cs
- ExceptionUtil.cs
- FlatButtonAppearance.cs
- Random.cs
- StringValidatorAttribute.cs
- _TLSstream.cs
- ReferencedType.cs
- XmlValidatingReaderImpl.cs
- BadImageFormatException.cs
- HttpDebugHandler.cs
- TemplateXamlTreeBuilder.cs
- ByteAnimationBase.cs
- NullableDoubleMinMaxAggregationOperator.cs
- ZoneButton.cs
- CancelRequestedQuery.cs
- CompositeDispatchFormatter.cs
- MemberPath.cs
- GridViewDesigner.cs
- GridViewColumn.cs
- CollectionBase.cs
- CqlIdentifiers.cs
- ListComponentEditor.cs
- FuncCompletionCallbackWrapper.cs
- UrlUtility.cs
- DelayedRegex.cs
- TargetConverter.cs
- FormView.cs
- WorkflowQueue.cs
- Crypto.cs
- securestring.cs
- TempFiles.cs
- PeerApplicationLaunchInfo.cs
- RegexParser.cs
- ServerIdentity.cs
- CompilationPass2Task.cs
- SmiContextFactory.cs
- Token.cs
- XmlValidatingReader.cs
- GridSplitter.cs
- BindingWorker.cs
- CompilationUnit.cs
- RowToParametersTransformer.cs
- DoubleAverageAggregationOperator.cs
- UTF8Encoding.cs
- XmlLinkedNode.cs
- IsolatedStorageException.cs
- SymmetricAlgorithm.cs
- BooleanExpr.cs
- DateTimeSerializationSection.cs
- ISSmlParser.cs
- ReaderWriterLockSlim.cs
- DependencyPropertyKind.cs
- WhitespaceRule.cs
- TypeDescriptor.cs
- SafeArrayRankMismatchException.cs
- TextCompositionEventArgs.cs
- ClientConfigurationHost.cs
- OleDbCommandBuilder.cs
- IResourceProvider.cs
- RelatedEnd.cs
- SQLDouble.cs
- UrlAuthFailureHandler.cs
- CollectionViewSource.cs
- HeaderLabel.cs
- ZipIOExtraFieldElement.cs
- DesignTimeXamlWriter.cs
- ExceptionHandlerDesigner.cs
- BinaryWriter.cs
- UnmanagedMemoryStreamWrapper.cs
- MenuItem.cs
- ProjectionPathSegment.cs
- DiagnosticsElement.cs
- IsolatedStorageFile.cs
- ThicknessAnimationUsingKeyFrames.cs
- VBIdentifierName.cs
- ListDictionaryInternal.cs
- RequestSecurityTokenResponseCollection.cs
- ExpressionNormalizer.cs
- DigestComparer.cs