Kelas task_continuation_context
Kelas ini task_continuation_context
memungkinkan Anda menentukan di mana Anda ingin kelanjutan dijalankan. Hanya berguna untuk menggunakan kelas ini dari aplikasi Windows Runtime. Untuk aplikasi Runtime non-Windows, konteks eksekusi kelanjutan tugas ditentukan oleh runtime, dan tidak dapat dikonfigurasi.
Sintaks
class task_continuation_context : public details::_ContextCallback;
Anggota
Metode Publik
Nama | Deskripsi |
---|---|
get_current_winrt_context | Mengembalikan objek konteks kelanjutan tugas yang mewakili konteks utas winrt saat ini. |
use_arbitrary | Membuat konteks kelanjutan tugas yang memungkinkan Runtime memilih konteks eksekusi untuk kelanjutan. |
use_current | Mengembalikan objek konteks kelanjutan tugas yang mewakili konteks eksekusi saat ini. |
use_default | Membuat konteks kelanjutan tugas default. |
use_synchronous_execution | Mengembalikan objek konteks kelanjutan tugas yang mewakili konteks eksekusi sinkron. |
Hierarki Warisan
_ContextCallback
task_continuation_context
Persyaratan
Header: ppltasks.h
Namespace: konkurensi
get_current_winrt_context
Mengembalikan objek konteks kelanjutan tugas yang mewakili konteks utas WinRT saat ini.
Sintaks
static task_continuation_context get_current_winrt_context();
Tampilkan Nilai
Konteks utas Windows Runtime saat ini. Mengembalikan task_continuation_context kosong jika dipanggil dari konteks Runtime non-Windows.
Keterangan
Metode ini get_current_winrt_context
menangkap konteks utas Windows Runtime pemanggil. Ini mengembalikan konteks kosong ke penelepon Runtime non-Windows.
Nilai yang dikembalikan oleh get_current_winrt_context
dapat digunakan untuk menunjukkan kepada Runtime bahwa kelanjutan harus dijalankan dalam model apartemen dari konteks yang ditangkap (STA vs MTA), terlepas dari apakah tugas antecedent sadar apartemen. Tugas sadar apartemen adalah tugas yang membongkar antarmuka Windows Runtime IAsyncInfo
, atau tugas yang turun dari tugas seperti itu.
Metode ini mirip use_current
dengan metode ini, tetapi juga tersedia untuk kode C++ asli tanpa dukungan ekstensi C++/CX. Ini ditujukan untuk digunakan oleh pengguna tingkat lanjut yang menulis kode pustaka C++/CX-agnostik untuk pemanggil asli dan Windows Runtime. Kecuali Anda memerlukan fungsionalitas ini, kami merekomendasikan use_current
metode , yang hanya tersedia untuk klien C++/CX.
use_arbitrary
Membuat konteks kelanjutan tugas yang memungkinkan Runtime memilih konteks eksekusi untuk kelanjutan.
Sintaks
static task_continuation_context use_arbitrary();
Tampilkan Nilai
Konteks kelanjutan tugas yang mewakili lokasi arbitrer.
Keterangan
Ketika konteks kelanjutan ini digunakan, kelanjutan akan dijalankan dalam konteks yang dipilih runtime meskipun tugas antecedent sadar apartemen.
use_arbitrary
dapat digunakan untuk menonaktifkan perilaku default untuk kelanjutan pada tugas sadar apartemen yang dibuat di STA.
Metode ini hanya tersedia untuk aplikasi Windows Runtime.
use_current
Mengembalikan objek konteks kelanjutan tugas yang mewakili konteks eksekusi saat ini.
static task_continuation_context use_current();
Tampilkan Nilai
Konteks eksekusi saat ini.
Keterangan
Metode ini menangkap konteks Windows Runtime penelepon sehingga kelanjutan dapat dijalankan di apartemen yang tepat.
Nilai yang dikembalikan oleh use_current
dapat digunakan untuk menunjukkan kepada Runtime bahwa kelanjutan harus dijalankan dalam konteks yang ditangkap (STA vs MTA) terlepas dari apakah tugas antecedent sadar apartemen atau tidak. Tugas sadar apartemen adalah tugas yang membongkar antarmuka Windows Runtime IAsyncInfo
, atau tugas yang turun dari tugas seperti itu.
Metode ini hanya tersedia untuk aplikasi Windows Runtime.
use_default
Membuat konteks kelanjutan tugas default.
static task_continuation_context use_default();
Tampilkan Nilai
Konteks kelanjutan default.
Keterangan
Konteks default digunakan jika Anda tidak menentukan konteks kelanjutan saat Anda memanggil then
metode . Di aplikasi Windows untuk Windows 7 ke bawah, serta aplikasi desktop pada Windows 8 dan yang lebih tinggi, runtime menentukan di mana kelanjutan tugas akan dijalankan. Namun, dalam aplikasi Windows Runtime, konteks kelanjutan default untuk kelanjutan pada tugas sadar apartemen adalah apartemen tempat then
dipanggil.
Tugas sadar apartemen adalah tugas yang membongkar antarmuka Windows Runtime IAsyncInfo
, atau tugas yang turun dari tugas seperti itu. Oleh karena itu, jika Anda menjadwalkan kelanjutan pada tugas sadar apartemen di Windows Runtime STA, kelanjutannya akan dijalankan di STA tersebut.
Kelanjutan pada tugas sadar non-apartemen akan dijalankan dalam konteks yang dipilih Runtime.
task_continuation_context::use_synchronous_execution
Mengembalikan objek konteks kelanjutan tugas yang mewakili konteks eksekusi sinkron.
Sintaks
static task_continuation_context use_synchronous_execution();
Tampilkan Nilai
Konteks eksekusi sinkron.
Keterangan
Metode ini use_synchronous_execution
memaksa tugas kelanjutan berjalan secara sinkron pada konteks, menyebabkan penyelesaian tugas anteksnya.
Jika tugas antecedent telah selesai ketika kelanjutan dilampirkan, kelanjutan berjalan secara sinkron pada konteks yang melampirkan kelanjutan.