Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / Threading / DispatcherFrame.cs / 1 / DispatcherFrame.cs
using System; using System.Security; namespace System.Windows.Threading { ////// Representation of Dispatcher frame. /// public class DispatcherFrame : DispatcherObject { ////// Critical: This code exists to ensure that the static variables initialized /// do not cause security violations.The reason this comes into existance is because /// of the call to RegisterWindowMessage /// TreatAsSafe:This is safe to call /// [SecurityCritical,SecurityTreatAsSafe] static DispatcherFrame() { } ////// Constructs a new instance of the DispatcherFrame class. /// public DispatcherFrame() : this(true) { } ////// Constructs a new instance of the DispatcherFrame class. /// /// /// Indicates whether or not this frame will exit when all frames /// are requested to exit. /// /// Dispatcher frames typically break down into two categories: /// 1) Long running, general purpose frames, that exit only when /// told to. These frames should exit when requested. /// 2) Short running, very specific frames that exit themselves /// when an important criteria is met. These frames may /// consider not exiting when requested in favor of waiting /// for their important criteria to be met. These frames /// should have a timeout associated with them. /// public DispatcherFrame(bool exitWhenRequested) { _exitWhenRequested = exitWhenRequested; _continue = true; } ////// Indicates that this dispatcher frame should exit. /// ////// Critical - calls a critical method - postThreadMessage. /// PublicOK - all we're doing is posting a current message to our thread. /// net effect is the dispatcher "wakes up" /// and uses the continue flag ( which may have just changed). /// public bool Continue { get { // This method is free-threaded. // First check if this frame wants to continue. bool shouldContinue = _continue; if(shouldContinue) { // This frame wants to continue, so next check if it will // respect the "exit requests" from the dispatcher. if(_exitWhenRequested) { Dispatcher dispatcher = Dispatcher; // This frame is willing to respect the "exit requests" of // the dispatcher, so check them. if(dispatcher._exitAllFrames || dispatcher._hasShutdownStarted) { shouldContinue = false; } } } return shouldContinue; } [SecurityCritical] set { // This method is free-threaded. _continue = value; // Post a message so that the message pump will wake up and // check our continue state. Dispatcher.BeginInvoke(DispatcherPriority.Send, (DispatcherOperationCallback) delegate(object unused) {return null;}, null); } } private bool _exitWhenRequested; private bool _continue; } } // 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
- BinaryKeyIdentifierClause.cs
- ObjectDataSourceEventArgs.cs
- HighlightComponent.cs
- SimpleFieldTemplateUserControl.cs
- SplineQuaternionKeyFrame.cs
- SerializationStore.cs
- DetailsViewActionList.cs
- MarginsConverter.cs
- BooleanToVisibilityConverter.cs
- Closure.cs
- Timer.cs
- xmlsaver.cs
- SmiEventSink.cs
- DataObjectCopyingEventArgs.cs
- WSSecurityPolicy.cs
- XamlSerializer.cs
- LinqToSqlWrapper.cs
- SourceItem.cs
- ClientSettingsStore.cs
- TextAnchor.cs
- VisualStates.cs
- NativeActivityTransactionContext.cs
- LambdaCompiler.Unary.cs
- CompilerInfo.cs
- ImageCodecInfoPrivate.cs
- MethodCallTranslator.cs
- EventLog.cs
- FixedSOMLineCollection.cs
- TypeViewSchema.cs
- TextElementCollection.cs
- TypeLibConverter.cs
- ThreadStateException.cs
- SQLStringStorage.cs
- SmiSettersStream.cs
- SQLMoneyStorage.cs
- OdbcHandle.cs
- Evidence.cs
- ToolStripTextBox.cs
- DashStyles.cs
- ChildChangedEventArgs.cs
- EventLogTraceListener.cs
- ExtendedProtectionPolicyTypeConverter.cs
- X509ChainElement.cs
- Geometry.cs
- TemplateControlParser.cs
- HostProtectionException.cs
- ResourceContainer.cs
- SqlDataSourceCustomCommandEditor.cs
- EmptyQuery.cs
- CodeLabeledStatement.cs
- RbTree.cs
- ScrollChrome.cs
- IndicCharClassifier.cs
- DefaultValueConverter.cs
- DbTransaction.cs
- ClientScriptManager.cs
- Label.cs
- HttpContextBase.cs
- path.cs
- Stream.cs
- DesignerSelectionListAdapter.cs
- BamlLocalizableResourceKey.cs
- TypeSource.cs
- List.cs
- CodeDomDesignerLoader.cs
- securestring.cs
- RuntimeCompatibilityAttribute.cs
- ObjectTokenCategory.cs
- StylusLogic.cs
- MenuItemStyle.cs
- HttpCapabilitiesEvaluator.cs
- ICspAsymmetricAlgorithm.cs
- RepeaterItem.cs
- Polygon.cs
- EntityTemplateFactory.cs
- DependencyPropertyKey.cs
- DesignConnection.cs
- BooleanAnimationBase.cs
- ControlCachePolicy.cs
- LocalIdKeyIdentifierClause.cs
- ContextStaticAttribute.cs
- MouseOverProperty.cs
- DataGridRowsPresenter.cs
- MethodResolver.cs
- SmiEventSink_DeferedProcessing.cs
- TabControlAutomationPeer.cs
- XmlNodeWriter.cs
- Attachment.cs
- ScaleTransform3D.cs
- MainMenu.cs
- UidPropertyAttribute.cs
- DbConnectionStringCommon.cs
- CodeStatementCollection.cs
- RootProfilePropertySettingsCollection.cs
- WebServiceEnumData.cs
- DataRowComparer.cs
- ArrayHelper.cs
- ApplicationHost.cs
- HashMembershipCondition.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs