Dispatcher.PushFrame(DispatcherFrame) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger en körningsloop.
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)
Parametrar
- frame
- DispatcherFrame
Ramen som avsändaren ska bearbeta.
- Attribut
Undantag
frame är null.
HasShutdownFinished är true
-eller-
frame körs på en annan Dispatcher.
-eller-
Dispatcher-bearbetning har inaktiverats.
Exempel
I följande exempel visas hur du använder en DispatcherFrame för att uppnå liknande resultat som metoden 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
Kommentarer
A DispatcherFrame representerar en loop som bearbetar väntande arbetsobjekt.
Dispatcher bearbetar arbetsobjektkön i en loop. Loopen kallas för en ram. Den första loopen initieras vanligtvis av programmet genom att anropa Run.
PushFrame anger en loop som representeras av parametern frame. Vid varje iteration av loopen Dispatcher kontrollerar Continue den egenskapen i DispatcherFrame klassen för att avgöra om loopen ska fortsätta eller om den ska stoppas.
DispatcherFrame Continue tillåter att egenskapen anges explicit och respekterar HasShutdownStarted egenskapen på Dispatcher. Det innebär att när starterna Dispatcher stängs av avslutas ramar som använder standardimplementeringen DispatcherFrame , vilket gör att alla kapslade bildrutor kan avslutas.