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
- TCPListener.cs
- TextTreeText.cs
- ValueType.cs
- StorageSetMapping.cs
- TCEAdapterGenerator.cs
- FederatedMessageSecurityOverHttp.cs
- UnsafeNativeMethods.cs
- XPathChildIterator.cs
- PipelineModuleStepContainer.cs
- DataGridViewButtonColumn.cs
- TextBlock.cs
- ZoneLinkButton.cs
- SmtpDigestAuthenticationModule.cs
- TextDecoration.cs
- OdbcConnectionFactory.cs
- DataGridColumnReorderingEventArgs.cs
- BamlMapTable.cs
- TrustLevel.cs
- CheckBoxField.cs
- DataServiceCollectionOfT.cs
- _BaseOverlappedAsyncResult.cs
- RoutedEvent.cs
- EntitySqlQueryBuilder.cs
- FilteredReadOnlyMetadataCollection.cs
- RemoteWebConfigurationHost.cs
- SmtpFailedRecipientsException.cs
- milexports.cs
- ClientApiGenerator.cs
- PriorityChain.cs
- SweepDirectionValidation.cs
- OleAutBinder.cs
- HostingEnvironmentException.cs
- DefaultAssemblyResolver.cs
- SrgsText.cs
- SecurityHeader.cs
- GenericIdentity.cs
- DocumentPageTextView.cs
- UnsafeNativeMethods.cs
- XamlStream.cs
- _Win32.cs
- BooleanFunctions.cs
- ObjectKeyFrameCollection.cs
- HttpListenerElement.cs
- ValidationSummary.cs
- SchemaMerger.cs
- GradientBrush.cs
- NamedPipeHostedTransportConfiguration.cs
- BuilderPropertyEntry.cs
- DeviceContexts.cs
- OrderByBuilder.cs
- DispatchWrapper.cs
- EventLog.cs
- DataTablePropertyDescriptor.cs
- DBSchemaRow.cs
- DecimalAnimation.cs
- ActivitySurrogate.cs
- RulePatternOps.cs
- NetCodeGroup.cs
- RetrieveVirtualItemEventArgs.cs
- COM2FontConverter.cs
- XXXInfos.cs
- GCHandleCookieTable.cs
- EDesignUtil.cs
- CategoryGridEntry.cs
- SamlAssertionKeyIdentifierClause.cs
- Vector3D.cs
- InputLanguage.cs
- SpotLight.cs
- BulletedList.cs
- Cloud.cs
- UndirectedGraph.cs
- DeobfuscatingStream.cs
- ListParagraph.cs
- SqlConnectionPoolProviderInfo.cs
- OutputCacheSection.cs
- SqlAliasesReferenced.cs
- ContainerControl.cs
- SoapFault.cs
- ReadOnlyTernaryTree.cs
- DataGridViewAutoSizeModeEventArgs.cs
- HyperlinkAutomationPeer.cs
- _ShellExpression.cs
- TableDetailsRow.cs
- DynamicUpdateCommand.cs
- HtmlTableCellCollection.cs
- DefaultAuthorizationContext.cs
- FontFamilyValueSerializer.cs
- NamedElement.cs
- ListViewItemSelectionChangedEvent.cs
- XsdCachingReader.cs
- FormViewDesigner.cs
- StateRuntime.cs
- LocalizationParserHooks.cs
- DebugView.cs
- ProvidersHelper.cs
- HtmlListAdapter.cs
- FixedDocument.cs
- Run.cs
- MimeParameters.cs
- ResourceDisplayNameAttribute.cs