Dispatcher.PushFrame(DispatcherFrame) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Voert een execute-lus in.
public:
static void PushFrame(System::Windows::Threading::DispatcherFrame ^ frame);
[System.Security.SecurityCritical]
public static void PushFrame(System.Windows.Threading.DispatcherFrame frame);
public static void PushFrame(System.Windows.Threading.DispatcherFrame frame);
[<System.Security.SecurityCritical>]
static member PushFrame : System.Windows.Threading.DispatcherFrame -> unit
static member PushFrame : System.Windows.Threading.DispatcherFrame -> unit
Public Shared Sub PushFrame (frame As DispatcherFrame)
Parameters
- frame
- DispatcherFrame
Het frame dat de dispatcher moet verwerken.
- Kenmerken
Uitzonderingen
frame is null.
HasShutdownFinished Is true
– of –
frame wordt uitgevoerd op een andere Dispatcher.
– of –
De verwerking van de dispatcher is uitgeschakeld.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een DispatcherFrame gebruikt om vergelijkbare resultaten te bereiken als de methode Windows Forms DoEvents.
public void DoEvents()
{
DispatcherFrame frame = new DispatcherFrame();
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background,
new DispatcherOperationCallback(ExitFrame), frame);
Dispatcher.PushFrame(frame);
}
public object ExitFrame(object f)
{
((DispatcherFrame)f).Continue = false;
return null;
}
<SecurityPermissionAttribute(SecurityAction.Demand, Flags := SecurityPermissionFlag.UnmanagedCode)>
Public Sub DoEvents()
Dim frame As New DispatcherFrame()
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, New DispatcherOperationCallback(AddressOf ExitFrame), frame)
Dispatcher.PushFrame(frame)
End Sub
Public Function ExitFrame(ByVal f As Object) As Object
CType(f, DispatcherFrame).Continue = False
Return Nothing
End Function
Opmerkingen
A DispatcherFrame vertegenwoordigt een lus die werkitems verwerkt die in behandeling zijn.
De dispatcher verwerkt de wachtrij voor werkitems in een lus. De lus wordt een frame genoemd. De eerste lus wordt doorgaans door de toepassing gestart door aan te roepen Run.
PushFrame voert een lus in die wordt vertegenwoordigd door de parameter frame. Bij elke iteratie van de lus controleert Dispatcher de Continue eigenschap in de DispatcherFrame klasse om te bepalen of de lus moet worden voortgezet of als deze moet worden gestopt.
DispatcherFrame staat toe dat de Continue eigenschap expliciet kan worden ingesteld en het respecteert de HasShutdownStarted eigenschap op de Dispatcher. Dit betekent dat wanneer de Dispatcher frames worden afgesloten die gebruikmaken van de standaard DispatcherFrame implementatie, worden afgesloten, waardoor alle geneste frames kunnen worden afgesloten.