Bagikan melalui


Namespace layanan konkurensi

Namespace Concurrency menyediakan kelas dan fungsi yang memberi Anda akses ke Concurrency Runtime, sebuah kerangka kerja pemrograman bersamaan untuk C++. Untuk informasi selengkapnya, lihat Konkurensi Runtime.

Sintaks

namespace concurrency;

Anggota

Typedefs

Nama Deskripsi
runtime_object_identity Setiap instans pesan memiliki identitas yang mengikutinya ketika digandakan dan diteruskan di antara komponen pengiriman pesan. Ini tidak boleh menjadi alamat objek pesan.
task_status Jenis yang mewakili keadaan akhir dari sebuah tugas. Nilai yang berlaku adalah completed atau canceled.
TaskProc Abstraksi dasar untuk tugas, didefinisikan sebagai void (__cdecl * TaskProc)(void *). TaskProc A dipanggil untuk memanggil isi tugas.
TaskProc_t Abstraksi dasar untuk tugas, didefinisikan sebagai void (__cdecl * TaskProc_t)(void *). TaskProc A dipanggil untuk memanggil isi tugas.

Kelas

Nama Deskripsi
Kelas affinity_partitioner Kelas affinity_partitioner mirip dengan kelas static_partitioner, tetapi meningkatkan afinitas cache dengan memilih pemetaan subcakupan ke utas pekerja. Ini dapat meningkatkan performa secara signifikan ketika perulangan dijalankan kembali melalui himpunan data yang sama, dan data cocok dalam cache. Perhatikan bahwa objek yang sama affinity_partitioner harus digunakan dengan perulangan berikutnya dari perulangan paralel yang dijalankan melalui himpunan data tertentu, untuk mendapatkan manfaat dari lokalitas data.
Kelas agen Kelas yang dimaksudkan untuk digunakan sebagai kelas dasar untuk semua agen independen. Ini digunakan untuk menyembunyikan status dari agen lain dan berinteraksi menggunakan pengiriman pesan.
Kelas auto_partitioner Kelas auto_partitioner mewakili metode parallel_for, parallel_for_each, dan parallel_transform yang digunakan untuk mempartisi rentang yang mereka iterasi. Metode pemartisian ini menggunakan pencurian rentang untuk penyeimbangan beban serta pembatalan per iterasi.
bad_target Class Kelas ini menjelaskan pengecualian yang dilemparkan ketika blok pesan diberikan referensi ke target yang tidak valid untuk operasi yang sedang dilaksanakan.
Kelas panggilan Blok pesan call adalah target_block multi-sumber yang diurutkan yang memanggil fungsi tertentu saat menerima pesan.
cancellation_token Class Kelas cancellation_token mewakili kemampuan untuk menentukan apakah beberapa operasi telah diminta untuk membatalkan. Token tertentu dapat dikaitkan dengan task_group, , structured_task_groupatau task untuk memberikan pembatalan implisit. Ini juga dapat diperiksa untuk pembatalan atau memiliki fungsi panggilan balik yang terdaftar jika dan saat cancellation_token_source terkait dibatalkan.
Kelas Pendaftaran Token Pembatalan Kelas cancellation_token_registration mewakili pemberitahuan panggilan balik dari cancellation_token. Ketika metode register pada cancellation_token digunakan untuk menerima pemberitahuan saat pembatalan terjadi, objek cancellation_token_registration dikembalikan sebagai pengendali balik sehingga pemanggil dapat meminta panggilan balik tertentu tidak lagi dilakukan melalui metode deregister.
Kelas CancellationTokenSource Kelas cancellation_token_source mewakili kemampuan untuk membatalkan beberapa operasi yang dapat dibatalkan.
kelas pilihan choice Blok olahpesan adalah blok target tunggal multi-sumber yang mewakili interaksi aliran kontrol dengan sekumpulan sumber. Blok pilihan akan menunggu salah satu dari beberapa sumber menghasilkan pesan dan akan menyebarluaskan indeks sumber yang menghasilkan pesan.
Kelas yang dapat dikombinasikan Objek combinable<T> ini dimaksudkan untuk menyediakan salinan data yang bersifat privat untuk utas, untuk melakukan sub-komputasi yang bersifat lokal bagi utas tanpa kunci selama algoritma paralel. Di akhir operasi paralel, sub-komputasi thread-private kemudian dapat digabungkan menjadi hasil akhir. Kelas ini dapat digunakan alih-alih variabel bersama, dan dapat mengakibatkan peningkatan performa jika sebaliknya akan ada banyak ketidakcocokan pada variabel bersama tersebut.
Kelas concurrent_priority_queue Kelas concurrent_priority_queue adalah kontainer yang memungkinkan beberapa utas untuk secara bersamaan mendorong dan memunculkan item. Item dimunculkan dalam urutan prioritas di mana prioritas ditentukan oleh funktor yang disediakan sebagai argumen templat.
Kelas Concurrent_queue Kelas concurrent_queue ini adalah kelas kontainer urutan yang memungkinkan akses first-in dan first-out ke elemennya. Ini memungkinkan sejumlah operasi aman konkurensi terbatas, seperti push dan try_pop.
Kelas concurrent_unordered_map Kelas concurrent_unordered_map adalah kontainer konkurensi-aman yang mengontrol urutan panjang yang bervariasi dari elemen jenis std::pair<const K, _Element_type>. Urutan ini diwakili dengan cara yang memungkinkan penambahan aman dari konkurensi, akses elemen, akses iterator, dan operasi traversal iterator.
Kelas concurrent_unordered_multimap Kelas concurrent_unordered_multimap adalah kontainer konkurensi-aman yang mengontrol urutan panjang yang bervariasi dari elemen jenis std::pair<const K, _Element_type>. Urutan diwakili sedemikian rupa sehingga memungkinkan penambahan yang aman dari sisi konkurensi, akses elemen, akses iterator, dan operasi traversal iterator.
Kelas concurrent_unordered_multiset Kelas concurrent_unordered_multiset adalah kontainer aman konkurensi yang mengontrol urutan dengan panjang yang bervariasi dari elemen jenis K. Urutan diwakili dengan cara yang memungkinkan penambahan aman konkurensi, akses elemen, akses iterator, dan operasi traversal iterator.
Kelas concurrent_unordered_set Kelas concurrent_unordered_set adalah kontainer aman konkurensi yang mengontrol urutan dengan panjang yang bervariasi dari elemen jenis K. Urutan diwakili dengan cara yang memungkinkan penambahan aman konkurensi, akses elemen, akses iterator, dan operasi traversal iterator.
Kelas concurrent_vector Kelas concurrent_vector adalah kelas kontainer urutan yang memungkinkan akses acak ke elemen apa pun. Ini memungkinkan penambahan yang aman konkuren, akses elemen, akses iterator, dan operasi penelusuran iterator.
Kelas Konteks Mewakili abstraksi untuk konteks eksekusi.
Kelas Context_Self_Unblock Kelas ini menjelaskan pengecualian yang dilemparkan ketika Unblock metode Context objek dipanggil dari konteks yang sama. Ini akan menunjukkan upaya oleh konteks tertentu untuk membuka blokir itu sendiri.
Kelas context_unblock_unbalanced Kelas ini menggambarkan pengecualian yang dilemparkan ketika panggilan ke metode Block dan Unblock dari objek Context tidak dipasangkan dengan benar.
Kelas critical_section Mutex non-reentrant yang secara eksplisit mengetahui Runtime Konkurensi.
Kelas CurrentScheduler Mewakili sebuah abstraksi untuk penjadwal saat ini yang dihubungkan dengan konteks pemanggilan.
Kelas default_scheduler_exists Kelas ini menjelaskan pengecualian yang dilemparkan ketika metode dipanggil Scheduler::SetDefaultSchedulerPolicy ketika penjadwal default sudah ada dalam proses.
Kelas acara Peristiwa reset manual yang secara eksplisit terintegrasi dengan Concurrency Runtime.
Kelas improper_lock Kelas ini menjelaskan pengecualian yang dilemparkan ketika kunci diperoleh dengan tidak benar.
Class improper_scheduler_attach Kelas ini menjelaskan suatu pengecualian yang dikirimkan ketika metode Attach dipanggil pada objek Scheduler yang sudah terhubung ke konteks saat ini.
Kelas improper_scheduler_detach Kelas ini menjelaskan pengecualian yang terjadi ketika metode CurrentScheduler::Detach dipanggil pada konteks yang belum ditautkan ke dalam penjadwal apa pun menggunakan metode Attach dari objek Scheduler.
Kelas improper_scheduler_reference Kelas ini menggambarkan pengecualian yang dilemparkan ketika metode Reference dipanggil pada objek Scheduler yang sedang dimatikan, dari konteks yang bukan bagian dari penjadwal tersebut.
Kelas invalid_link_target Kelas ini menjelaskan pengecualian yang dilemparkan ketika link_target metode blok olahpesan dipanggil dan blok olahpesan tidak dapat ditautkan ke target. Ini bisa menjadi hasil dari melebihi jumlah tautan yang diizinkan oleh blok olahpesan atau mencoba menautkan target tertentu dua kali ke sumber yang sama.
Kelas invalid_multiple_scheduling Kelas ini menjelaskan pengecualian yang terjadi ketika objek task_handle dijadwalkan beberapa kali melalui metode run dari objek task_group atau structured_task_group tanpa ada panggilan intervensi ke metode wait atau run_and_wait.
Kelas invalid_operation Kelas ini menjelaskan pengecualian yang dilemparkan ketika dilakukan operasi yang tidak valid yang tidak dapat dijelaskan lebih akurat oleh jenis pengecualian lain yang dilemparkan oleh Concurrency Runtime.
Kelas invalid_oversubscribe_operation Kelas ini menjelaskan pengecualian yang dilemparkan ketika metode dipanggil dengan parameter diatur ke tanpa panggilan sebelumnya ke metode dengan parameter diatur ke .
Kelas invalid_scheduler_policy_key Kelas ini menjelaskan pengecualian yang dilemparkan ketika kunci yang tidak valid atau tidak diketahui diteruskan ke konstruktor objek SchedulerPolicy, atau metode SetPolicyValue dari objek SchedulerPolicy meneruskan kunci yang harus diubah menggunakan metode lain seperti metode SetConcurrencyLimits.
Kelas invalid_scheduler_policy_thread_specification Kelas ini menjelaskan pengecualian yang dilemparkan ketika percobaan dilakukan untuk menetapkan batas konkurensi objek SchedulerPolicy sedemikian rupa sehingga nilai kunci MinConcurrency kurang dari nilai kunci MaxConcurrency.
Kelas invalid_scheduler_policy_value Kelas ini menjelaskan pengecualian yang dipicu ketika kunci kebijakan objek SchedulerPolicy diatur ke nilai yang tidak valid untuk kunci tersebut.
Kelas ISource Kelas ISource adalah antarmuka untuk semua blok sumber. Pesan dari blok sumber dipancarkan ke blok ITarget.
Kelas ITarget Kelas ITarget adalah antarmuka untuk semua blok target. Blok target memproses pesan yang ditawarkan oleh blok ISource kepada mereka.
bergabung dengan Kelas join Blok olahpesan adalah target tunggal, multi-sumber, yang diurutkan propagator_block yang menggabungkan bersama-sama pesan jenis T dari masing-masing sumbernya.
Kelas lokasi Abstraksi lokasi fisik pada perangkat keras.
Kelas pesan Amplop pesan dasar yang berisi muatan data yang diteruskan di antara blok pemrosesan pesan.
message_not_found Kelas Kelas ini menjelaskan pengecualian yang dilemparkan ketika blok olahpesan tidak dapat menemukan pesan yang diminta.
message_processor Class Kelas message_processor adalah kelas dasar abstrak untuk pemrosesan message objek. Tidak ada jaminan pada urutan pesan.
Kelas missing_wait Kelas ini menjelaskan pengecualian yang dilemparkan ketika ada tugas yang masih dijadwalkan pada objek task_group atau structured_task_group pada saat destruktor objek tersebut dijalankan. Pengecualian ini tidak akan pernah dilemparkan jika destruktor tercapai karena pelepasan tumpukan sebagai hasil dari pengecualian.
Kelas multi_link_registry Objek multi_link_registry adalah network_link_registry yang mengelola beberapa blok sumber atau beberapa blok target.
Kelas multitype_join multitype_join Blok olahpesan adalah blok olahpesan multi-sumber dan target tunggal yang menggabungkan pesan-pesan dengan tipe yang berbeda-beda dari masing-masing sumbernya dan menawarkan tuple dari pesan gabungan ke targetnya.
Kelas nested_scheduler_missing_detach Kelas ini menjelaskan pengecualian yang dilemparkan ketika Konkurensi Runtime mendeteksi bahwa Anda lalai memanggil metode CurrentScheduler::Detach pada konteks yang melekatkan diri ke penjadwal kedua menggunakan metode Attach dari objek Scheduler.
Kelas *network_link_registry* Kelas network_link_registry dasar abstrak mengelola tautan antara blok sumber dan target.
Kelas operation_timed_out Kelas ini menjelaskan pengecualian yang dilemparkan ketika operasi telah kehabisan waktu.
Kelas ordered_message_processor ordered_message_processor adalah message_processor yang memungkinkan blok pesan memproses pesan sesuai dengan urutan penerimaan.
Kelas overwrite_buffer overwrite_buffer Blok pesan adalah komponen multi-target, multi-sumber, diurutkan, dan mampu menyimpan satu pesan pada satu waktu propagator_block. Pesan baru mengganti pesan yang sebelumnya disimpan.
Kelas progress_reporter Kelas pelapor kemajuan memungkinkan pelaporan pemberitahuan kemajuan untuk jenis tertentu. Setiap objek progress_reporter terikat pada tindakan atau operasi asinkron tertentu.
Kelas propagator_block Kelas propagator_block adalah kelas dasar abstrak untuk blok pesan yang merupakan sumber dan target. Ini menggabungkan fungsionalitas kelas source_block dan target_block .
Kelas reader_writer_lock Kunci pembaca-penulis dengan preferensi penulis berbasis antrean dan hanya berputar lokal. Kunci memberikan akses pertama masuk - keluar pertama (FIFO) ke penulis dan pembaca kelaparan di bawah beban penulis berkelanjutan.
Kelas ScheduleGroup Mewakili abstraksi untuk kelompok jadwal. Grup jadwal mengatur sekumpulan pekerjaan terkait yang mendapat manfaat dari dijadwalkan berdekatan baik secara sementara, dengan menjalankan tugas lain dalam grup yang sama sebelum pindah ke grup lain, atau secara spasial, dengan mengeksekusi beberapa item dalam grup yang sama pada simpul NUMA atau soket fisik yang sama.
Kelas Penjadwal Mewakili abstraksi untuk penjadwal Runtime Konkurensi.
Kelas scheduler_not_attached Kelas ini menjelaskan pengecualian yang dilemparkan ketika sebuah operasi dilakukan yang mengharuskan penjadwal dilampirkan ke konteks saat ini, tetapi penjadwal tersebut tidak ada.
Sakelar_kesalahan_alokasi_sumber_daya_kelas Kelas ini menjelaskan pengecualian yang dilemparkan karena kegagalan untuk memperoleh sumber daya penting di Runtime Konkurensi.
Kelas scheduler_worker_creation_error Kelas ini menjelaskan pengecualian yang dilemparkan karena kegagalan untuk membuat konteks eksekusi pekerja dalam Concurrency Runtime.
Kelas SchedulerPolicy Kelas SchedulerPolicy berisi sekumpulan pasangan kunci/nilai, satu untuk setiap elemen kebijakan, yang mengontrol perilaku instans penjadwal.
Kelas simple_partitioner Kelas simple_partitioner mewakili partisi statis dari rentang yang diulang oleh parallel_for. Pemisah membagi rentang menjadi potongan-potongan sehingga setiap potongan memiliki setidaknya jumlah iterasi yang ditentukan oleh ukuran potongan.
Kelas single_assignment single_assignment Blok olahpesan adalah multi-target, multi-sumber, diurutkan propagator_block mampu menyimpan satu, tulis sekali message.
Kelas: single_link_registry Objek single_link_registry adalah network_link_registry yang hanya mengelola satu blok sumber atau target.
source_block Kelas Kelas source_block ini adalah kelas dasar abstrak untuk blok sumber saja. Kelas ini menyediakan fungsionalitas manajemen tautan dasar serta pemeriksaan kesalahan umum.
source_link_manager Class Objek source_link_manager mengelola tautan jaringan ke blok pesan ISource.
Kelas static_partitioner Kelas static_partitioner mewakili partisi statis dari rentang yang diulang oleh parallel_for. Pempartisi membagi rentang menjadi sejumlah potongan sesuai dengan jumlah pekerja yang tersedia ke penjadwal yang mendasar.
Kelas structured_task_group Kelas ini structured_task_group mewakili kumpulan pekerjaan paralel yang sangat terstruktur. Anda dapat mengantrekan tugas-tugas paralel individual pada structured_task_group dengan menggunakan objek task_handle, dan menunggu hingga selesai, atau membatalkan grup tugas sebelum selesai dieksekusi, yang akan membatalkan semua tugas yang belum mulai dieksekusi.
Kelas target_block Kelas target_block ini adalah kelas dasar abstrak yang menyediakan fungsionalitas manajemen tautan dasar dan pemeriksaan kesalahan hanya untuk blok target.
task Class (Concurrency Runtime) Kelas Pustaka Pola Paralel (PPL). task Objek task mewakili pekerjaan yang dapat dijalankan secara asinkron dan bersamaan dengan tugas lainnya dan pekerjaan paralel yang dihasilkan oleh algoritma paralel dalam Concurrency Runtime. Ini menghasilkan hasil dengan tipe _ResultType setelah penyelesaian yang sukses. Tugas jenis task<void> tidak menghasilkan hasil. Tugas dapat ditunggu dan dibatalkan secara independen dari tugas lain. Ini juga dapat disusun bersama dengan tugas lain menggunakan pola kelanjutan(then), penggabungan(when_all), dan pilihan(when_any).
Task_canceled class Kelas ini menjelaskan pengecualian yang dilemparkan oleh lapisan tugas PPL untuk memaksa tugas saat ini dibatalkan. Ini juga dilemparkan oleh metode get() pada task, untuk tugas yang dibatalkan.
Event Penyelesaian Tugas Kelas Kelas task_completion_event memungkinkan Anda menunda eksekusi tugas hingga kondisi terpenuhi, atau memulai tugas sebagai respons terhadap peristiwa eksternal.
Kelas context_kelanjutan_tugas Kelas task_continuation_context ini memungkinkan Anda menentukan di mana Anda ingin pelanjutan dieksekusi. Kelas ini hanya berguna bila digunakan dari aplikasi UWP. Untuk aplikasi Runtime non-Windows, konteks eksekusi kelanjutan tugas ditentukan oleh runtime, dan tidak dapat dikonfigurasi.
Kelas task_group Kelas task_group mewakili kumpulan pekerjaan paralel yang dapat ditunggu atau dibatalkan.
task_handle Class Kelas task_handle mewakili item kerja paralel individual. Ini merangkum instruksi dan data yang diperlukan untuk menjalankan pekerjaan.
Kelas task_options (Kerangka Kerja Konkurensi) Mewakili opsi yang diizinkan untuk membuat tugas
Kelas timer timer Blok olahpesan adalah target source_block tunggal yang mampu mengirim pesan ke targetnya setelah periode waktu tertentu berlalu atau pada interval tertentu.
Kelas Transformer transformer Blok pesan terurut adalah target tunggal, multi-sumber propagator_block yang dapat menerima pesan dari satu jenis dan mampu menyimpan jumlah pesan yang tak terbatas dari jenis lain.
Kelas unbounded_buffer unbounded_buffer Blok pesan adalah sistem multi-tujuan, multi-sumber yang teratur propagator_block yang mampu menyimpan jumlah pesan tanpa batas.
Kelas unsupported_os Kelas ini menjelaskan pengecualian yang dilemparkan ketika sistem operasi yang tidak didukung digunakan.

Struktur

Nama Deskripsi
Struktur DispatchState Struktur DispatchState digunakan untuk mentransfer status ke IExecutionContext::Dispatch metode . Ini menjelaskan kondisi di mana metode Dispatch dipanggil pada antarmuka IExecutionContext.
Struktur IExecutionContext Antarmuka dengan konteks eksekusi yang dapat berjalan pada prosesor virtual yang spesifik dan dapat tergantikan konteksnya secara kooperatif.
Struktur IExecutionResource Abstraksi untuk utas perangkat keras.
Struktur IResourceManager Antarmuka untuk Manajer Sumber Daya dari Concurrency Runtime. Ini adalah antarmuka tempat penjadwal berkomunikasi dengan Resource Manager.
Struktur IScheduler Antarmuka ke abstraksi penjadwal kerja. Resource Manager Concurrency Runtime menggunakan antarmuka ini untuk berkomunikasi dengan penjadwal kerja.
Struktur ISchedulerProxy Antarmuka tempat penjadwal berkomunikasi dengan Resource Manager Concurrency Runtime untuk menegosiasikan alokasi sumber daya.
Struktur IThreadProxy Abstraksi untuk utas eksekusi. Bergantung pada kunci kebijakan penjadwal SchedulerType yang Anda buat, Resource Manager akan memberi Anda proksi utas yang didukung oleh utas Win32 biasa atau utas User-Mode Schedulable (UMS). Utas UMS didukung pada sistem operasi 64-bit dengan versi Windows 7 dan yang lebih tinggi.
Struktur ITopologyExecutionResource Antarmuka ke sumber daya eksekusi seperti yang didefinisikan oleh Resource Manager.
Struktur ITopologyNode Antarmuka ke node topologi seperti yang didefinisikan oleh Resource Manager. Simpul berisi satu atau beberapa sumber daya eksekusi.
Struktur DaftarPemenuhanIUMS Menunjukkan daftar penyelesaian UMS. Ketika sebuah thread UMS terblokir, konteks penjadwalan yang ditentukan oleh penjadwal diaktifkan untuk memutuskan apa yang harus dijadwalkan pada akar prosesor virtual yang mendasari saat thread asli terblokir. Ketika utas asli terbuka, sistem operasi mengantrikannya di daftar penyelesaian yang dapat diakses melalui antarmuka ini. Penjadwal dapat melakukan kueri daftar penyelesaian tugas pada konteks penjadwalan yang ditunjuk atau tempat lain dimana penjadwal mencari pekerjaan.
Struktur IUMSScheduler Antarmuka ke sebuah abstraksi dari penjadwal kerja yang menginginkan Resource Manager pada Concurrency Runtime untuk menyediakan utas user-mode schedulable (UMS). Resource Manager menggunakan antarmuka ini untuk berkomunikasi dengan penjadwal utas UMS. Antarmuka IUMSScheduler mewarisi dari IScheduler antarmuka.
Struktur IUMSThreadProxy Abstraksi untuk utas eksekusi. Jika Anda ingin penjadwal Anda diberikan utas yang dapat dijadwalkan dalam modus pengguna (UMS), atur nilai elemen kebijakan penjadwal SchedulerKind ke UmsThreadDefault, dan terapkan antarmuka IUMSScheduler. Utas UMS hanya didukung pada sistem operasi 64-bit dengan versi Windows 7 dan yang lebih tinggi.
Struktur IUMSUnblockNotification Mewakili pemberitahuan dari Resource Manager bahwa proksi utas yang sebelumnya memblokir dan memicu pengembalian ke konteks penjadwalan yang ditentukan oleh penjadwal sudah tidak diblokir lagi dan siap untuk dijadwalkan. Antarmuka ini tidak valid begitu konteks eksekusi yang terkait dengan proksi utas, yang dikembalikan dari metode GetContext, dijadwalkan kembali.
Struktur IVirtualProcessorRoot Abstraksi untuk utas perangkat keras tempat proksi utas dapat dijalankan.
Struktur scheduler_interface Antarmuka Penjadwal
scheduler_ptr Structure (Concurrency Runtime) Mewakili suatu penunjuk ke penjadwal. Kelas ini ada untuk memungkinkan spesifikasi masa pakai bersama dengan menggunakan shared_ptr atau hanya referensi biasa dengan menggunakan pointer mentah.

Enumerasi

Nama Deskripsi
agent_status Keadaan valid untuk agent.
Agents_EventType Jenis peristiwa yang dapat dilacak menggunakan fungsionalitas pelacakan yang ditawarkan oleh Pustaka Agen
ConcRT_EventType Jenis peristiwa yang dapat dilacak menggunakan fungsionalitas pelacakan yang ditawarkan oleh Concurrency Runtime.
Concrt_TraceFlags Bendera pelacakan untuk jenis peristiwa
CriticalRegionType Jenis wilayah penting yang konteksnya ada di dalamnya.
DynamicProgressFeedbackType Digunakan oleh kebijakan DynamicProgressFeedback untuk menjelaskan apakah sumber daya untuk penjadwal akan diseimbangkan kembali sesuai dengan informasi statistik yang dikumpulkan dari scheduler atau hanya berdasarkan prosesor virtual yang masuk dan keluar dari keadaan siaga melalui panggilan metode ke Activate dan Deactivate pada antarmuka IVirtualProcessorRoot. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
join_type Jenis dari join blok pesan.
message_status Respons yang valid untuk penawaran objek message ke blok.
PolicyElementKey Kunci kebijakan yang menjelaskan aspek perilaku penjadwal. Setiap elemen kebijakan dijelaskan oleh pasangan kunci-nilai. Untuk informasi selengkapnya tentang kebijakan penjadwal dan dampaknya terhadap penjadwal, lihat Task Scheduler.
SchedulerType Digunakan dalam kebijakan SchedulerKind untuk menjelaskan jenis utas yang harus dimanfaatkan oleh penjadwal untuk konteks eksekusi yang mendasarinya. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
SchedulingProtocolType Digunakan oleh kebijakan SchedulingProtocol untuk menjelaskan algoritma penjadwalan mana yang akan digunakan oleh penjadwal. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
SwitchingProxyState Digunakan untuk menunjukkan status tempat proksi utas berada, ketika menjalankan peralihan konteks kooperatif ke proksi utas yang berbeda.
status_grup_tugas Menjelaskan status eksekusi objek task_group atau structured_task_group . Nilai jenis ini dikembalikan oleh banyak metode yang menunggu tugas yang dijadwalkan ke grup tugas untuk diselesaikan.
WinRTInitializationType Digunakan oleh kebijakan WinRTInitialization untuk menjelaskan apakah Windows Runtime akan diinisialisasi, dan bagaimana proses ini dilakukan, pada utas penjadwal untuk aplikasi yang berjalan pada sistem operasi versi Windows 8 ke atas. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.

Functions

Nama Deskripsi
Fungsi Alokasi Mengalokasikan blok memori sebesar yang ditentukan dari Concurrency Runtime Caching Suballocator.
Asend Function Kelebihan beban. Operasi pengiriman asinkron, yang menjadwalkan tugas untuk menyebarkan data ke blok target.
Fungsi Cancel_Current_Task Membatalkan tugas yang sedang dijalankan. Fungsi ini dapat dipanggil dari dalam isi tugas untuk membatalkan eksekusi tugas dan menyebabkannya memasuki status canceled .

Ini bukan skenario yang didukung untuk memanggil fungsi ini jika Anda tidak berada dalam isi task. Melakukannya akan mengakibatkan perilaku yang tidak terdefinisi seperti crash atau tidak responsif dalam aplikasi Anda.
Fungsi create_async Membuat konstruksi asinkron Windows Runtime berdasarkan lambda atau objek fungsi yang disediakan oleh pengguna. Jenis pengembalian create_async adalah salah satu dari IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^, atau IAsyncOperationWithProgress<TResult, TProgress>^ berdasarkan penanda lambda yang diteruskan ke metode.
Fungsi create_task Kelebihan beban. Membuat objek tugas PPL. create_task dapat digunakan di mana saja Anda akan menggunakan konstruktor tugas. Ini disediakan terutama untuk kenyamanan, karena memungkinkan penggunaan auto kata kunci saat membuat tugas.
Fungsi CreateResourceManager Mengembalikan antarmuka yang mewakili instance tunggal Resource Manager dari Concurrency Runtime. Resource Manager bertanggung jawab untuk menetapkan sumber daya kepada penjadwal yang ingin bekerja sama satu sama lain.
Fungsi DisableTracing Menonaktifkan pelacakan di Runtime Konkurensi. Fungsi ini tidak digunakan lagi karena pelacakan ETW tidak terdaftar secara default.
Fungsi EnableTracing Mengaktifkan pelacakan di Concurrency Runtime. Fungsi ini tidak digunakan lagi karena pelacakan ETW sekarang aktif secara default.
Fungsi Bebas Merilis blok memori yang sebelumnya dialokasikan oleh metode Alloc ke Concurrency Runtime Caching Suballocator.
Fungsi get_ambient_scheduler (Runtime Konkurensi)
Fungsi GetExecutionContextId Mengembalikan pengidentifikasi unik yang dapat ditetapkan ke konteks eksekusi yang mengimplementasikan IExecutionContext antarmuka.
Fungsi GetOSVersion Mengembalikan versi sistem operasi.
Fungsi GetProcessorCount Menampilkan jumlah utas perangkat keras pada sistem dasar.
Fungsi GetProcessorNodeCount Mengembalikan jumlah simpul NUMA atau paket prosesor pada sistem yang mendasar.
Fungsi GetSchedulerId Mengembalikan pengenal unik yang dapat ditetapkan ke penjadwal yang mengimplementasikan antarmuka IScheduler.
Fungsi interruption_point Membuat titik interupsi untuk pembatalan. Jika pembatalan sedang berlangsung dalam konteks di mana fungsi ini dipanggil, ini akan melemparkan pengecualian internal yang membatalkan eksekusi pekerjaan paralel yang sedang dijalankan. Jika pembatalan tidak sedang berlangsung, fungsi tidak melakukan apa-apa.
Fungsi is_current_task_group_canceling Menyatakan apakah grup tugas yang saat ini menjalankan langsung pada konteks saat ini sedang dalam proses pembatalan aktif (atau tidak lama lagi). Perhatikan bahwa jika tidak ada grup tugas yang saat ini menjalankan secara langsung pada konteks saat ini, false akan dikembalikan.
Fungsi make_choice Kelebihan beban. Mengkonstruksi blok pesan choice dari Scheduler atau ScheduleGroup yang bersifat opsional dan dua atau lebih sumber input.
Fungsi make_greedy_join Kelebihan beban. Membuat greedy multitype_join blok olahpesan dari sumber input opsional Scheduler atau ScheduleGroup dan dua atau lebih.
Fungsi make_join Kelebihan beban. Membuat non_greedy multitype_join blok olahpesan dari sumber input opsional Scheduler atau ScheduleGroup dan dua atau lebih.
Fungsi make_task Metode pabrik untuk membuat task_handle objek.
Fungsi parallel_buffered_sort Kelebihan beban. Mengatur elemen dalam rentang tertentu ke dalam urutan non-turun, atau sesuai dengan kriteria pemesanan yang ditentukan oleh predikat biner, secara paralel. Fungsi ini secara semantik mirip std::sort, karena fungsi ini adalah pengurutan di tempat yang tidak stabil berbasis bandingan kecuali bahwa membutuhkan O(n) ruang tambahan, dan elemen yang diurutkan memerlukan inisialisasi default.
Fungsi parallel_for Kelebihan beban. parallel_for melakukan iterasi pada berbagai indeks dan menjalankan fungsi yang disediakan pengguna di setiap iterasi, secara paralel.
Fungsi parallel_for_each Kelebihan beban. parallel_for_each menerapkan fungsi tertentu ke setiap elemen dalam rentang, secara paralel. Setara secara semantik dengan fungsi for_each di namespace std, kecuali bahwa iterasi atas elemen dilakukan secara paralel tanpa urutan iterasi yang ditentukan. Argumen _Func harus mendukung operator panggilan fungsi formulir operator()(T) di mana parameter T adalah jenis item kontainer yang diulang.
Fungsi parallel_invoke Kelebihan beban. Menjalankan objek fungsi yang disediakan sebagai parameter secara paralel, dan menunggu hingga fungsi-fungsi tersebut selesai dieksekusi. Setiap objek fungsi bisa berupa ekspresi lambda, penunjuk ke fungsi, atau objek apa pun yang mendukung operator panggilan fungsi dengan tanda tangan void operator()().
Fungsi Parallel_Radixsort Kelebihan beban. Mengatur elemen dalam rentang tertentu ke dalam urutan tidak menurun menggunakan algoritma pengurutan radiks. Ini adalah fungsi sortir stabil yang memerlukan fungsi proyeksi yang dapat memproyeksikan elemen untuk diurutkan ke dalam kunci seperti bilangan bulat yang tidak ditandatangani. Inisialisasi default diperlukan untuk elemen yang sedang diurutkan.
Fungsi Parallel_Reduce Kelebihan beban. Menghitung jumlah semua elemen dalam rentang tertentu dengan menghitung jumlah parsial berturut-turut, atau menghitung hasil hasil parsial berturut-turut yang sama diperoleh dari menggunakan operasi biner tertentu selain jumlah, secara paralel. parallel_reduce secara semantik mirip std::accumulatedengan , kecuali bahwa itu mengharuskan operasi biner menjadi asosiatif, dan memerlukan nilai identitas alih-alih nilai awal.
Fungsi parallel_sort Kelebihan beban. Mengatur elemen dalam rentang tertentu menjadi urutan tidak menurun, atau sesuai dengan kriteria pengurutan yang ditentukan oleh predikat biner, secara paralel. Fungsi ini secara semantik mirip dengan std::sort karena merupakan pengurutan berbasis perbandingan yang tidak stabil dan dilakukan di lokasi.
Fungsi parallel_transform Kelebihan beban. Menerapkan objek fungsi tertentu ke setiap elemen dalam rentang sumber, atau ke sepasang elemen dari dua rentang sumber, dan menyalin nilai pengembalian objek fungsi ke dalam rentang tujuan, secara paralel. Fungsional ini secara semantik setara dengan std::transform.
fungsi penerimaan Kelebihan beban. Implementasi penerimaan umum, memungkinkan konteks untuk menunggu data dari tepat satu sumber dan memfilter nilai yang diterima.
Fungsi run_with_cancellation_token Menjalankan objek fungsi dengan segera dan sinkron dalam konteks token pembatalan tertentu.
Kirim Fungsi Kelebihan beban. Operasi pengiriman sinkron, yang menunggu hingga target menerima atau menolak pesan.
Fungsi set_ambient_scheduler (Konkurensi Runtime)
Fungsi set_task_execution_resources Kelebihan beban. Membatasi sumber daya eksekusi yang digunakan oleh thread pekerja internal Concurrency Runtime pada set afinitas yang ditentukan.

Hanya valid untuk memanggil metode ini sebelum Resource Manager dibuat, atau selama jeda antara dua masa pakai Resource Manager. Ini dapat dipanggil beberapa kali selama Resource Manager tidak ada pada saat pemanggilan. Setelah batas afinitas ditetapkan, batas tersebut tetap berlaku hingga panggilan valid berikutnya ke set_task_execution_resources metode .

Masker afinitas yang disediakan tidak perlu menjadi subset dari masker afinitas proses. Afinitas proses akan diperbarui jika perlu.
fungsi pertukaran Menukar elemen dari dua concurrent_vector objek.
task_from_exception Function (Concurrency Runtime)
Fungsi task_from_result (Lingkungan Waktu Jalan Konkurensi)
Fungsi Trace_agents_register_name Mengaitkan nama yang diberikan ke blok pesan atau agen dalam penelusuran ETW.
Fungsi try_receive Kelebihan beban. Implementasi coba-terima umum, memungkinkan konteks untuk mencari data dari tepat satu sumber dan memfilter nilai yang diterima. Jika data belum siap, metode akan mengembalikan false.
fungsi tunggu Menjeda konteks saat ini untuk jumlah waktu tertentu.
Fungsi when_all Membuat tugas yang akan berhasil diselesaikan ketika semua tugas yang disediakan sebagai argumen berhasil diselesaikan.
Fungsi when_any Kelebihan beban. Membuat tugas yang akan berhasil diselesaikan ketika salah satu tugas yang disediakan sebagai argumen berhasil diselesaikan.

Operator

Nama Deskripsi
operator!= Menguji apakah concurrent_vector objek di sisi kiri operator tidak sama dengan concurrent_vector objek di sisi kanan.
operator & Kelebihan beban. Membuat tugas yang akan berhasil diselesaikan ketika kedua tugas yang disediakan sebagai argumen berhasil diselesaikan.
operator|| Kelebihan beban. Membuat tugas yang akan berhasil diselesaikan ketika salah satu tugas yang disediakan sebagai argumen berhasil diselesaikan.
Operator< Menguji apakah concurrent_vector objek di sisi kiri operator kurang dari concurrent_vector objek di sisi kanan.
operator<= Menguji apakah concurrent_vector objek di sisi kiri operator kurang dari atau sama dengan concurrent_vector objek di sisi kanan.
operator== Menguji apakah concurrent_vector objek di sisi kiri operator sama dengan concurrent_vector objek di sisi kanan.
Operator> Menguji apakah concurrent_vector objek di sisi kiri operator lebih besar dari concurrent_vector objek di sisi kanan.
operator>= Menguji apakah concurrent_vector objek di sisi kiri operator lebih besar dari atau sama dengan concurrent_vector objek di sisi kanan.

Konstanta

Nama Deskripsi
AgentEventGuid GUID kategori ({B9B5B78C-0713-4898-A21A-C67949DCED07}) yang menjelaskan peristiwa ETW yang dipicu oleh perpustakaan Agen di Concurrency Runtime.
ChoreEventGuid GUID kategori yang menjelaskan event ETW yang dipicu oleh Runtime Konkuren yang terkait langsung dengan pekerjaan atau tugas.
ConcRT_ProviderGuid GUID penyedia ETW untuk Concurrency Runtime.
CONCRT_RM_VERSION_1 Menunjukkan dukungan antarmuka Resource Manager yang ditentukan dalam Visual Studio 2010.
ConcRTEventGuid GUID kategori yang menggambarkan peristiwa ETW yang dijalankan oleh Concurrency Runtime yang tidak lebih spesifik dijelaskan oleh kategori lain.
ContextEventGuid GUID kategori yang menjelaskan peristiwa ETW yang dipicu oleh Concurrency Runtime, yang terkait langsung dengan konteks.
COOPERATIVE_TIMEOUT_INFINITE Nilai yang menunjukkan bahwa waktu tunggu seharusnya tidak pernah habis.
COOPERATIVE_WAIT_TIMEOUT Nilai yang menunjukkan bahwa waktu tunggu habis.
INHERIT_THREAD_PRIORITY Nilai khusus untuk kunci ContextPriority kebijakan yang menunjukkan bahwa semua konteks dalam penjadwal harus memiliki prioritas utas yang sama dengan utas yang membuat penjadwal.
LockEventGuid GUID kategori yang menggambarkan peristiwa ETW yang dipicu oleh Concurrency Runtime yang berhubungan langsung dengan penguncian.
MaxExecutionResources Nilai khusus untuk kunci kebijakan MinConcurrency dan MaxConcurrency. Secara default diatur ke jumlah utas perangkat keras pada mesin jika tidak ada batasan lain.
PPLParallelForeachEventGuid GUID kategori yang menjelaskan peristiwa ETW yang diaktifkan oleh Lari Waktu Keserentakan dan terkait langsung dengan fungsi penggunaan parallel_for_each.
PPLParallelForEventGuid GUID kategori yang menjelaskan peristiwa ETW yang diaktifkan oleh Lari Waktu Keserentakan dan terkait langsung dengan fungsi penggunaan parallel_for.
PPLParallelInvokeEventGuid GUID kategori yang menjelaskan peristiwa ETW yang diaktifkan oleh Lari Waktu Keserentakan dan terkait langsung dengan fungsi penggunaan parallel_invoke.
ResourceManagerEventGuid GUID kategori yang menjelaskan peristiwa ETW yang dipicu oleh Concurrency Runtime yang terkait langsung dengan pengelola sumber daya.
ScheduleGroupEventGuid GUID kategori yang menjelaskan peristiwa ETW yang dipicu oleh Runtime Konkurensi yang berhubungan langsung dengan grup penjadwalan.
SchedulerEventGuid GUID kategori yang menjelaskan peristiwa ETW yang dikeluarkan oleh Concurrency Runtime dan berhubungan langsung dengan aktivitas penjadwalan.
VirtualProcessorEventGuid GUID kategori yang menjelaskan peristiwa ETW yang dipicu oleh Runtime Concurrency yang terkait langsung dengan prosesor virtual.

Persyaratan

Header: agents.h, concrt.h, concrtrm.h, concurrent_priority_queue.h, concurrent_queue.h, concurrent_unordered_map.h, concurrent_unordered_set.h, concurrent_vector.h, internal_concurrent_hash.h, internal_split_ordered_list.h, ppl.h, pplcancellation_token.h, pplconcrt.h, pplinterface.h, ppltasks.h

Lihat juga

Referensi