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
- ParameterCollectionEditor.cs
- TripleDESCryptoServiceProvider.cs
- ComPlusThreadInitializer.cs
- FilterQuery.cs
- DataObject.cs
- ParameterCollectionEditorForm.cs
- DataRelation.cs
- RowToParametersTransformer.cs
- SymmetricKeyWrap.cs
- TypeToken.cs
- CheckBoxField.cs
- Parsers.cs
- XmlAtomicValue.cs
- EntityContainerRelationshipSet.cs
- MessagePartProtectionMode.cs
- ContentElementAutomationPeer.cs
- OleDbSchemaGuid.cs
- DataControlFieldCollection.cs
- WsdlBuildProvider.cs
- GroupLabel.cs
- CreatingCookieEventArgs.cs
- TraceProvider.cs
- DiscoveryCallbackBehavior.cs
- httpstaticobjectscollection.cs
- EventTask.cs
- HttpRequestWrapper.cs
- QueryConverter.cs
- LayoutSettings.cs
- Button.cs
- TypeToken.cs
- OracleFactory.cs
- CaseKeyBox.ViewModel.cs
- FormViewCommandEventArgs.cs
- StylusEditingBehavior.cs
- GenerateScriptTypeAttribute.cs
- ElementProxy.cs
- ButtonBaseAdapter.cs
- Separator.cs
- ModelUIElement3D.cs
- Pool.cs
- MetadataItem.cs
- MetabaseSettings.cs
- Region.cs
- DesignerAttribute.cs
- translator.cs
- RTLAwareMessageBox.cs
- QilGeneratorEnv.cs
- SiteOfOriginContainer.cs
- TrackingCondition.cs
- SmiXetterAccessMap.cs
- LogLogRecord.cs
- SpellerError.cs
- TypeConverter.cs
- ExceptionRoutedEventArgs.cs
- DataGridViewHitTestInfo.cs
- SqlAliaser.cs
- UnsafeNativeMethods.cs
- ObjectMemberMapping.cs
- DragDrop.cs
- WmlPageAdapter.cs
- KeyEventArgs.cs
- VectorCollection.cs
- DataKeyCollection.cs
- StoreConnection.cs
- IndentedTextWriter.cs
- SemaphoreSecurity.cs
- ChannelHandler.cs
- MemoryStream.cs
- LicenseProviderAttribute.cs
- RMPublishingDialog.cs
- DeploymentSection.cs
- ArrayEditor.cs
- SmtpAuthenticationManager.cs
- WindowsRegion.cs
- TransformCollection.cs
- ReadOnlyMetadataCollection.cs
- COM2ExtendedUITypeEditor.cs
- Ops.cs
- HtmlAnchor.cs
- X509ChainPolicy.cs
- BaseHashHelper.cs
- ExpressionBinding.cs
- HMACSHA512.cs
- RegexCaptureCollection.cs
- Native.cs
- MetadataAssemblyHelper.cs
- SqlFileStream.cs
- DocumentViewerHelper.cs
- ActiveXHelper.cs
- XmlSchemaAnnotation.cs
- SingleTagSectionHandler.cs
- ChangePassword.cs
- Content.cs
- WebBrowsableAttribute.cs
- SynchronizedDispatch.cs
- NoneExcludedImageIndexConverter.cs
- PerformanceCounterPermission.cs
- SHA256.cs
- SelectedGridItemChangedEvent.cs
- EmptyReadOnlyDictionaryInternal.cs