Dispatcher.PushFrame(DispatcherFrame) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вводит цикл выполнения.
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)
Параметры
- frame
- DispatcherFrame
Кадр для обработки диспетчера.
- Атрибуты
Исключения
frame равно null.
HasShutdownFinished равен true
–или–
frame выполняется в другом Dispatcher.
–или–
Обработка диспетчера отключена.
Примеры
В следующем примере показано, как использовать DispatcherFrame аналогичные результаты, как метод 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
Комментарии
Представляет DispatcherFrame цикл, который обрабатывает ожидающие рабочие элементы.
Диспетчер обрабатывает очередь рабочих элементов в цикле. Цикл называется кадром. Начальный цикл обычно инициируется приложением путем вызова Run.
PushFrame вводит цикл, представленный параметром frame. При каждой итерации цикла проверяется Continue свойство классаDispatcherFrame, чтобы определить, Dispatcher должен ли цикл продолжаться или если он должен остановиться.
DispatcherFrame Continue позволяет явно задать свойство, и оно учитывает HasShutdownStarted свойство в объекте Dispatcher. Это означает, что при Dispatcher завершении работы кадры, использующие реализацию по умолчанию DispatcherFrame , завершаются, что позволяет выйти из всех вложенных кадров.