CoreDispatcher Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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). |