CoreDispatcher Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет среда выполнения Windows основной диспетчер сообщений о событиях. Экземпляры этого типа отвечают за обработку оконных сообщений и отправку событий клиенту.
public ref class CoreDispatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class CoreDispatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class CoreDispatcher
Public NotInheritable Class CoreDispatcher
- Наследование
- Атрибуты
- Реализации
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v1.0)
|
Комментарии
Экземпляры этого типа можно получить из свойства CoreWindow.Dispatcher. Текущий экземпляр CoreWindow можно получить, вызвав CoreWindow.GetForCurrentThread.
// App.cpp
...
// An implementation of IFrameworkView::Run.
void Run()
{
CoreWindow window{ CoreWindow::GetForCurrentThread() };
window.Activate();
CoreDispatcher dispatcher{ window.Dispatcher() };
dispatcher.ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
}
// The CoreApplication::Run call indirectly calls the App::Run function above.
int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int)
{
CoreApplication::Run(App());
}
void MyCoreWindowEvents::Run() // this is an implementation of IFrameworkView::Run() used to show context. It is called by CoreApplication::Run().
{
CoreWindow::GetForCurrentThread()->Activate();
//...
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
}
Свойства
CurrentPriority |
Возвращает и задает приоритет текущей задачи. |
HasThreadAccess |
Возвращает значение, указывающее, имеет ли диспетчер событий, предоставляемый этим экземпляром CoreWindow , доступ к текущему потоку. |
Методы
ProcessEvents(CoreProcessEventsOption) |
Запускает диспетчер, обрабатывая очередь входных событий для этого экземпляра CoreWindow. |
RunAsync(CoreDispatcherPriority, DispatchedHandler) |
Планирует предоставленный обратный вызов в потоке пользовательского интерфейса из рабочего потока и возвращает результаты асинхронно. |
RunIdleAsync(IdleDispatchedHandler) |
Планирует обратный вызов в потоке пользовательского интерфейса из рабочего потока с приоритетом простоя и возвращает результаты асинхронно. |
ShouldYield() |
Запрашивает, должен ли вызывающий объект возвращать наличие элементов в очереди задач с более высоким приоритетом, чем текущая задача. |
ShouldYield(CoreDispatcherPriority) |
Запрашивает, должен ли вызывающий объект возвращать наличие элементов в очереди задач с указанным приоритетом или выше. |
StopProcessEvents() |
Запрещает диспетчеру обрабатывать события в очереди. |
TryRunAsync(CoreDispatcherPriority, DispatchedHandler) |
Пытается запланировать указанный обратный вызов в потоке пользовательского интерфейса из рабочего потока и асинхронно возвращает результаты. |
TryRunIdleAsync(IdleDispatchedHandler) |
Пытается запланировать обратный вызов в потоке пользовательского интерфейса из рабочего потока с приоритетом простоя и асинхронно возвращает результаты. |
События
AcceleratorKeyActivated |
Активируется при активации клавиши ускорителя (нажатой или удерживаемой). |