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
- InternalBufferManager.cs
- BookmarkUndoUnit.cs
- SqlDataSourceView.cs
- QueryOutputWriterV1.cs
- TypeInitializationException.cs
- SHA512.cs
- SynchronizedPool.cs
- ObjectDataSourceEventArgs.cs
- complextypematerializer.cs
- ListSourceHelper.cs
- CodeMethodReturnStatement.cs
- LastQueryOperator.cs
- XmlResolver.cs
- MemberExpression.cs
- SqlDataReader.cs
- ConnectionManagementSection.cs
- SerializeAbsoluteContext.cs
- TimeoutStream.cs
- EventLogInternal.cs
- AuthenticationException.cs
- BitmapMetadataEnumerator.cs
- CompilationUtil.cs
- PerformanceCounterNameAttribute.cs
- TreeNodeCollection.cs
- PhonemeEventArgs.cs
- ProcessModelSection.cs
- InputLanguageEventArgs.cs
- SEHException.cs
- DataSourceConverter.cs
- DataSourceCacheDurationConverter.cs
- TimeSpanConverter.cs
- IsolatedStorageFile.cs
- RegularExpressionValidator.cs
- Quaternion.cs
- GPPOINTF.cs
- Accessors.cs
- VisualCollection.cs
- RectAnimation.cs
- LinqDataSourceEditData.cs
- TreeNodeClickEventArgs.cs
- ErrorStyle.cs
- TaskFileService.cs
- GridEntry.cs
- ViewgenGatekeeper.cs
- ParameterBuilder.cs
- ExpressionPrinter.cs
- BufferedGraphics.cs
- WindowsTitleBar.cs
- ComplexType.cs
- DataTableExtensions.cs
- AbsoluteQuery.cs
- TemplateControlBuildProvider.cs
- Schema.cs
- FontFaceLayoutInfo.cs
- DataGridViewSelectedCellCollection.cs
- FixedDocumentPaginator.cs
- OutputCacheModule.cs
- ConnectionsZone.cs
- ValuePatternIdentifiers.cs
- HtmlInputControl.cs
- CompatibleIComparer.cs
- ProjectionPlanCompiler.cs
- NativeActivityTransactionContext.cs
- ScriptControlManager.cs
- DesignTimeDataBinding.cs
- HostedTransportConfigurationManager.cs
- LostFocusEventManager.cs
- SecurityManager.cs
- XmlBinaryReader.cs
- CustomLineCap.cs
- SqlClientMetaDataCollectionNames.cs
- RuntimeArgumentHandle.cs
- XpsPartBase.cs
- WizardPanel.cs
- EntityTemplateFactory.cs
- DataGridRowHeader.cs
- ButtonBaseAdapter.cs
- ArrangedElementCollection.cs
- SettingsBase.cs
- SRGSCompiler.cs
- UserControlCodeDomTreeGenerator.cs
- QueryParameter.cs
- BaseInfoTable.cs
- Tablet.cs
- EditingCommands.cs
- TimerElapsedEvenArgs.cs
- backend.cs
- MembershipSection.cs
- Config.cs
- SqlException.cs
- WebPartZone.cs
- PropertyGridEditorPart.cs
- ImageListImage.cs
- FontStyleConverter.cs
- SchemaObjectWriter.cs
- WebPartConnectionsCancelEventArgs.cs
- OleDbError.cs
- Light.cs
- DiscreteKeyFrames.cs
- RangeValidator.cs