Bagikan melalui


CoreDispatcher Kelas

Definisi

Menyediakan dispatcher pesan peristiwa inti Windows Runtime. Instans jenis ini bertanggung jawab untuk memproses pesan jendela dan mengirimkan peristiwa ke klien.

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
Warisan
Object Platform::Object IInspectable CoreDispatcher
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Keterangan

Instans jenis ini dapat diperoleh dari properti CoreWindow.Dispatcher. Instans CoreWindow saat ini dapat diperoleh dengan memanggil 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);
}

Properti

CurrentPriority

Mendapatkan dan mengatur prioritas tugas saat ini.

HasThreadAccess

Mendapatkan nilai yang menentukan apakah dispatcher peristiwa yang disediakan oleh instans CoreWindow ini memiliki akses ke utas saat ini atau tidak.

Metode

ProcessEvents(CoreProcessEventsOption)

Memulai dispatcher yang memproses antrean peristiwa input untuk instans CoreWindow ini.

RunAsync(CoreDispatcherPriority, DispatchedHandler)

Menjadwalkan panggilan balik yang disediakan pada utas UI dari utas pekerja, dan mengembalikan hasilnya secara asinkron.

RunIdleAsync(IdleDispatchedHandler)

Menjadwalkan panggilan balik pada utas UI dari utas pekerja dengan prioritas menganggur, dan mengembalikan hasilnya secara asinkron.

ShouldYield()

Kueri apakah penelepon harus menghasilkan jika ada item dalam antrean tugas dengan prioritas yang lebih tinggi daripada tugas saat ini.

ShouldYield(CoreDispatcherPriority)

Kueri apakah penelepon harus menghasilkan jika ada item dalam antrean tugas prioritas yang ditentukan atau lebih tinggi.

StopProcessEvents()

Menghentikan dispatcher memproses peristiwa antrean apa pun.

TryRunAsync(CoreDispatcherPriority, DispatchedHandler)

Mencoba menjadwalkan panggilan balik yang ditentukan pada utas UI dari utas pekerja, dan mengembalikan hasil secara asinkron.

TryRunIdleAsync(IdleDispatchedHandler)

Mencoba menjadwalkan panggilan balik pada utas UI dari utas pekerja dengan prioritas menganggur, dan mengembalikan hasilnya secara asinkron.

Acara

AcceleratorKeyActivated

Diaktifkan saat tombol akselerator diaktifkan (ditekan atau ditahan).

Berlaku untuk