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
- DataGridViewRowConverter.cs
- SmtpLoginAuthenticationModule.cs
- Image.cs
- MimeWriter.cs
- ServiceTimeoutsBehavior.cs
- DataServiceClientException.cs
- SizeAnimationClockResource.cs
- Socket.cs
- ListViewDeleteEventArgs.cs
- BindingExpressionUncommonField.cs
- Item.cs
- DeclarativeCatalogPart.cs
- SecurityChannel.cs
- TextChange.cs
- SoapRpcServiceAttribute.cs
- PolicyDesigner.cs
- RawStylusInputReport.cs
- CompilationUnit.cs
- WindowsPen.cs
- AutomationPatternInfo.cs
- ClientTargetSection.cs
- RemotingAttributes.cs
- GraphicsPath.cs
- PageHandlerFactory.cs
- TemplatePropertyEntry.cs
- CurrencyManager.cs
- TreeNode.cs
- CompleteWizardStep.cs
- RowBinding.cs
- ArrayExtension.cs
- SubMenuStyle.cs
- RecognitionEventArgs.cs
- BorderGapMaskConverter.cs
- ValueTypeFixupInfo.cs
- DiagnosticsConfigurationHandler.cs
- Int32Collection.cs
- BaseValidator.cs
- DataMemberConverter.cs
- ControlIdConverter.cs
- xmlfixedPageInfo.cs
- ExtensibleClassFactory.cs
- TypeUsage.cs
- TreeNodeEventArgs.cs
- HttpContext.cs
- FontUnit.cs
- RIPEMD160Managed.cs
- AssemblyBuilder.cs
- Int64KeyFrameCollection.cs
- RowVisual.cs
- XmlNamespaceManager.cs
- SqlGatherProducedAliases.cs
- EllipseGeometry.cs
- Privilege.cs
- RemoteWebConfigurationHost.cs
- String.cs
- sitestring.cs
- NativeCppClassAttribute.cs
- PrinterUnitConvert.cs
- Validator.cs
- WorkflowQueueInfo.cs
- SqlCrossApplyToCrossJoin.cs
- UniqueIdentifierService.cs
- SecurityDescriptor.cs
- PersonalizationDictionary.cs
- ComplexBindingPropertiesAttribute.cs
- CommandEventArgs.cs
- CharacterMetricsDictionary.cs
- TextRunTypographyProperties.cs
- PermissionSet.cs
- WebPartMenuStyle.cs
- FromReply.cs
- TripleDES.cs
- CallContext.cs
- FilterEventArgs.cs
- NameValueConfigurationCollection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- Cursors.cs
- SafeNativeMemoryHandle.cs
- CodeCompiler.cs
- EntityConnectionStringBuilder.cs
- ActivityCodeDomReferenceService.cs
- EllipticalNodeOperations.cs
- ManipulationVelocities.cs
- DetailsViewRow.cs
- ADMembershipUser.cs
- IisTraceListener.cs
- EllipseGeometry.cs
- UnsafeNativeMethods.cs
- View.cs
- IconHelper.cs
- VisualTarget.cs
- SafeHandles.cs
- MessageSecurityVersionConverter.cs
- ComponentCodeDomSerializer.cs
- PackageFilter.cs
- AppDomainAttributes.cs
- HyperLinkStyle.cs
- UrlMappingsModule.cs
- SiteMapNodeItem.cs
- SingleBodyParameterMessageFormatter.cs