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.
-или- Диспетчер отключен.
Примеры
В следующем примере показано, как использовать a DispatcherFrame для достижения аналогичных результатов, как метод Windows FormsDoEvents.
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 должен ли цикл продолжаться или если он должен остановиться.
DispatcherFrameContinue позволяет явно задать свойство и учитывает HasShutdownStarted свойство в свойстве Dispatcher. Это означает, что при Dispatcher завершении работы кадры, использующие реализацию по умолчанию DispatcherFrame , завершаются, что позволяет выйти из всех вложенных кадров.