Namespace layanan konkurensi

Namespace layanan Concurrency menyediakan kelas dan fungsi yang memberi Anda akses ke Konkurensi Runtime, 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 saat dikloning dan diteruskan di antara komponen olahpesan. Ini tidak boleh menjadi alamat objek pesan.
task_status Jenis yang mewakili status terminal 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 ini mirip static_partitioner dengan kelas , tetapi meningkatkan afinitas cache dengan pilihan pemetaan subranges 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 pesan-lewat.
Kelas auto_partitioner Kelas auto_partitioner mewakili metode parallel_fordefault , parallel_for_each dan parallel_transform digunakan untuk mempartisi rentang yang mereka iterasi. Metode pemartisian ini menggunakan pencurian rentang untuk penyeimbangan beban serta pembatalan per iterasi.
Kelas bad_target Kelas ini menjelaskan pengecualian yang dilemparkan ketika blok olahpesan diberikan penunjuk ke target yang tidak valid untuk operasi yang sedang dilakukan.
Kelas panggilan call Blok olahpesan adalah multi-sumber, yang diurutkan target_block yang memanggil fungsi tertentu saat menerima pesan.
Kelas cancellation_token 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 dijajaki untuk pembatalan atau memiliki panggilan balik yang terdaftar untuk jika dan kapan terkait cancellation_token_source dibatalkan.
Kelas cancellation_token_registration Kelas cancellation_token_registration mewakili pemberitahuan panggilan balik dari cancellation_token. register Ketika metode pada cancellation_token digunakan untuk menerima pemberitahuan kapan pembatalan terjadi, cancellation_token_registration objek dikembalikan sebagai handel ke panggilan balik sehingga pemanggil dapat meminta panggilan balik tertentu tidak lagi dilakukan melalui penggunaan deregister metode .
Kelas cancellation_token_source 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 utas-privat, untuk melakukan sub-komputasi lokal utas bebas 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 serangkaian operasi yang 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 diwakili dengan cara yang memungkinkan penambalan aman 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 dengan cara yang memungkinkan penambalan aman konkurensi, akses elemen, akses iterator, dan operasi traversal iterator.
Kelas concurrent_unordered_multiset Kelas concurrent_unordered_multiset adalah kontainer aman konkurensi yang mengontrol urutan panjang yang bervariasi dari elemen jenis K. Urutan diwakili dengan cara yang memungkinkan penambalan 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 panjang yang bervariasi dari elemen jenis K. Urutan diwakili dengan cara yang memungkinkan penambalan 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 penambalan yang aman konkurensi, akses elemen, akses iterator, dan operasi traversal 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 menjelaskan pengecualian yang dilemparkan ketika panggilan ke Block metode Context dan Unblock objek tidak dipasangkan dengan benar.
Kelas critical_section Mutex non-reentrant yang secara eksplisit mengetahui Runtime Konkurensi.
Kelas CurrentScheduler Mewakili abstraksi untuk penjadwal saat ini yang terkait dengan konteks panggilan.
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 mengetahui Runtime Konkurensi.
Kelas improper_lock Kelas ini menjelaskan pengecualian yang dilemparkan ketika kunci diperoleh dengan tidak benar.
Kelas improper_scheduler_attach Kelas ini menjelaskan pengecualian yang dilemparkan ketika Attach metode dipanggil pada Scheduler objek yang sudah dilampirkan ke konteks saat ini.
Kelas improper_scheduler_detach Kelas ini menjelaskan pengecualian yang dilemparkan ketika CurrentScheduler::Detach metode dipanggil pada konteks yang belum dilampirkan ke penjadwal apa pun menggunakan Attach metode Scheduler objek.
Kelas improper_scheduler_reference Kelas ini menjelaskan pengecualian yang dilemparkan ketika Reference metode dipanggil pada Scheduler objek yang 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 dilemparkan ketika task_handle objek dijadwalkan beberapa kali menggunakan run metode task_group objek atau structured_task_group tanpa panggilan intervensi ke wait metode atau run_and_wait .
Kelas invalid_operation Kelas ini menjelaskan pengecualian yang dilemparkan ketika operasi yang tidak valid dilakukan yang tidak lebih akurat dijelaskan oleh jenis pengecualian lain yang dilemparkan oleh Runtime Konkurensi.
Kelas invalid_oversubscribe_operation Kelas ini menjelaskan pengecualian yang dilemparkan ketika Context::Oversubscribe metode dipanggil dengan _BeginOversubscription parameter diatur ke false tanpa panggilan sebelumnya ke Context::Oversubscribe metode dengan parameter diatur _BeginOversubscription ke true.
Kelas invalid_scheduler_policy_key Kelas ini menjelaskan pengecualian yang dilemparkan ketika kunci yang tidak valid atau tidak diketahui diteruskan ke SchedulerPolicy konstruktor objek, atau SetPolicyValue metode SchedulerPolicy objek diteruskan kunci yang harus diubah menggunakan cara lain seperti SetConcurrencyLimits metode .
Kelas invalid_scheduler_policy_thread_specification Kelas ini menjelaskan pengecualian yang dilemparkan ketika upaya dilakukan untuk mengatur batas SchedulerPolicy konkurensi objek sedih sehingga nilai MinConcurrency kunci kurang dari MaxConcurrency nilai kunci.
Kelas invalid_scheduler_policy_value Kelas ini menjelaskan pengecualian yang dilemparkan ketika kunci SchedulerPolicy kebijakan objek diatur ke nilai yang tidak valid untuk kunci tersebut.
Kelas ISource Kelas ISource adalah antarmuka untuk semua blok sumber. Blok sumber menyebarluaskan pesan ke ITarget blok.
Kelas ITarget Kelas ITarget adalah antarmuka untuk semua blok target. Blok target mengonsumsi pesan yang ditawarkan kepada mereka berdasarkan ISource blok.
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 payload data yang diteruskan di antara blok olahpesan.
Kelas message_not_found Kelas ini menjelaskan pengecualian yang dilemparkan ketika blok olahpesan tidak dapat menemukan pesan yang diminta.
Kelas message_processor 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 ke task_group objek atau structured_task_group pada saat destruktor objek 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 bersama-sama pesan dari berbagai jenis dari masing-masing sumbernya dan menawarkan tuple pesan gabungan ke targetnya.
Kelas nested_scheduler_missing_detach Kelas ini menjelaskan pengecualian yang dilemparkan ketika Runtime Konkurensi mendeteksi bahwa Anda diabaikan untuk memanggil CurrentScheduler::Detach metode pada konteks yang dilampirkan ke penjadwal kedua menggunakan Attach metode Scheduler objek.
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 yang message_processor memungkinkan blok pesan memproses pesan dalam urutan diterimanya.
Kelas overwrite_buffer overwrite_buffer Blok olahpesan adalah multi-target, multi-sumber, yang diurutkan propagator_block mampu menyimpan satu pesan pada satu waktu. Pesan baru menimpa pesan yang sebelumnya disimpan.
Kelas progress_reporter Kelas reporter kemajuan memungkinkan pelaporan pemberitahuan kemajuan dari 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 berbasis antrean berbasis antrean penulis dengan putaran lokal saja. Kunci memberikan akses pertama masuk - keluar pertama (FIFO) ke penulis dan pembaca kelaparan di bawah beban penulis berkelanjutan.
Kelas ScheduleGroup Mewakili abstraksi untuk grup 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 operasi dilakukan yang mengharuskan penjadwal dilampirkan ke konteks saat ini dan tidak.
Kelas scheduler_resource_allocation_error 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. Partisi membagi rentang menjadi potongan-potongan sehingga setiap gugus memiliki setidaknya jumlah iterasi yang ditentukan oleh ukuran gugus.
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.
Kelas source_block Kelas source_block ini adalah kelas dasar abstrak untuk blok sumber saja. Kelas ini menyediakan fungsionalitas manajemen tautan dasar serta pemeriksaan kesalahan umum.
Kelas source_link_manager Objek source_link_manager mengelola tautan jaringan blok olahpesan ke ISource blok.
Kelas static_partitioner Kelas static_partitioner mewakili partisi statis dari rentang yang diulang oleh parallel_for. Partisi membagi rentang menjadi potongan sebanyak mungkin karena ada pekerja yang tersedia untuk penjadwal yang mendasar.
Kelas structured_task_group Kelas ini structured_task_group mewakili kumpulan pekerjaan paralel yang sangat terstruktur. Anda dapat mengantrekan tugas paralel individual ke objek yang structured_task_group menggunakan task_handle , dan menunggunya selesai, atau membatalkan grup tugas sebelum selesai dieksekusi, yang akan membatalkan tugas apa pun yang belum dimulai eksekusi.
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 lain dan pekerjaan paralel yang dihasilkan oleh algoritma paralel dalam Runtime Konkurensi. Ini menghasilkan hasil dari jenis _ResultType pada penyelesaian yang berhasil. Tugas jenis task<void> tidak menghasilkan hasil. Tugas dapat ditunggu dan dibatalkan secara independen dari tugas lain. Ini juga dapat terdiri dengan tugas lain menggunakan pola continuations(then), dan join(when_all) dan choice(when_any).
Kelas task_canceled Kelas ini menjelaskan pengecualian yang dilemparkan oleh lapisan tugas PPL untuk memaksa tugas saat ini dibatalkan. Ini juga dilemparkan oleh get() metode pada tugas, untuk tugas yang dibatalkan.
Kelas task_completion_event Kelas task_completion_event memungkinkan Anda menunda eksekusi tugas hingga kondisi terpenuhi, atau memulai tugas sebagai respons terhadap peristiwa eksternal.
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 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.
Kelas task_handle Kelas task_handle mewakili item kerja paralel individual. Ini merangkum instruksi dan data yang diperlukan untuk menjalankan pekerjaan.
Kelas task_options (Runtime 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 transformator transformer Blok olahpesan adalah target tunggal, multi-sumber, yang diurutkan propagator_block yang dapat menerima pesan dari satu jenis dan mampu menyimpan jumlah pesan yang tidak terbatas dari jenis yang berbeda.
Kelas unbounded_buffer unbounded_buffer Blok olahpesan adalah multi-target, multi-sumber, yang diurutkan propagator_block mampu menyimpan jumlah pesan yang tidak terbatas.
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 keadaan di mana Dispatch metode dipanggil pada IExecutionContext antarmuka.
Struktur IExecutionContext Antarmuka ke konteks eksekusi yang dapat berjalan pada prosesor virtual tertentu dan secara kooperatif dialihkan konteksnya.
Struktur IExecutionResource Abstraksi untuk utas perangkat keras.
Struktur IResourceManager Antarmuka ke Resource Manager 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 SchedulerType kunci kebijakan penjadwal yang Anda buat, Resource Manager akan memberi Anda proksi utas yang didukung oleh utas Win32 biasa atau utas schedulable mode pengguna (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 IUMSCompletionList Mewakili daftar penyelesaian UMS. Ketika utas UMS memblokir, konteks penjadwalan yang ditunjuk penjadwal dikirim untuk membuat keputusan tentang apa yang harus dijadwalkan pada akar prosesor virtual yang mendasar saat utas asli diblokir. Ketika utas asli membuka blokir, sistem operasi mengantrekannya ke daftar penyelesaian yang dapat diakses melalui antarmuka ini. Penjadwal dapat mengkueri daftar penyelesaian pada konteks penjadwalan yang ditunjuk atau tempat lain yang dicari untuk pekerjaan.
Struktur IUMSScheduler Antarmuka ke abstraksi penjadwal kerja yang menginginkan resource Manager Concurrency Runtime untuk menyerahkannya utas mode pengguna 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 schedulable mode pengguna (UMS), atur nilai untuk elemen kebijakan penjadwal SchedulerKind ke UmsThreadDefault, dan terapkan IUMSScheduler antarmuka. 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 memblokir dan memicu pengembalian ke konteks penjadwalan yang ditunjuk penjadwal telah tidak diblokir dan siap untuk dijadwalkan. Antarmuka ini tidak valid setelah konteks eksekusi terkait proksi utas, dikembalikan dari GetContext metode , dijadwalkan ulang.
Struktur IVirtualProcessorRoot Abstraksi untuk utas perangkat keras tempat proksi utas dapat dijalankan.
Struktur scheduler_interface Antarmuka Penjadwal
Struktur scheduler_ptr (Runtime Konkurensi) Mewakili 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 Status yang agentvalid untuk .
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 DynamicProgressFeedback kebijakan untuk menjelaskan apakah sumber daya untuk penjadwal akan diseimbangkan kembali sesuai dengan informasi statistik yang dikumpulkan dari penjadwal atau hanya berdasarkan prosesor virtual yang masuk dan keluar dari status diam melalui panggilan ke Activate metode dan Deactivate pada IVirtualProcessorRoot antarmuka. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
join_type Jenis join blok olahpesan.
message_status Respons yang valid untuk penawaran message objek 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 Penjadwal Tugas.
SchedulerType Digunakan oleh SchedulerKind kebijakan untuk menjelaskan jenis utas yang harus digunakan penjadwal untuk konteks eksekusi yang mendasar. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
PenjadwalanProtocolType Digunakan oleh SchedulingProtocol kebijakan untuk menjelaskan algoritma penjadwalan mana yang akan digunakan untuk 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.
task_group_status 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 WinRTInitialization kebijakan untuk menjelaskan apakah dan bagaimana Windows Runtime akan diinisialisasi pada utas penjadwal untuk aplikasi yang berjalan pada sistem operasi dengan versi Windows 8 atau yang lebih tinggi. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.

Fungsi

Nama Deskripsi
Fungsi Alokasi Mengalokasikan blok memori ukuran yang ditentukan dari Concurrency Runtime Caching Suballocator.
fungsi asend 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 yang disediakan pengguna atau objek fungsi. Jenis create_async pengembalian adalah salah satu dari IAsyncAction^, , IAsyncActionWithProgress<TProgress>^IAsyncOperation<TResult>^, atau IAsyncOperationWithProgress<TResult, TProgress>^ berdasarkan tanda tangan 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 instans singleton resource Manager 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 Runtime Konkurensi. Fungsi ini tidak digunakan lagi karena pelacakan ETW sekarang aktif secara default.
Fungsi Bebas Merilis blok memori yang sebelumnya dialokasikan oleh Alloc metode 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 Mengembalikan jumlah utas perangkat keras pada sistem yang mendasar.
Fungsi GetProcessorNodeCount Mengembalikan jumlah simpul NUMA atau paket prosesor pada sistem yang mendasar.
Fungsi GetSchedulerId Mengembalikan pengidentifikasi unik yang dapat ditetapkan ke penjadwal yang mengimplementasikan IScheduler antarmuka.
Fungsi interruption_point Membuat titik gangguan 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 Mengembalikan indikasi apakah grup tugas yang saat ini menjalankan sebaris pada konteks saat ini berada di tengah-tengah pembatalan aktif (atau tidak lama lagi). Perhatikan bahwa jika tidak ada grup tugas yang saat ini menjalankan sebaris pada konteks saat ini, false akan dikembalikan.
Fungsi make_choice Kelebihan beban. Membuat choice blok olahpesan dari sumber input opsional Scheduler atau ScheduleGroup dan dua atau lebih.
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 dengan di mana fungsi ini adalah pengurutan berbasis bandingan, tidak stabil, di tempat kecuali bahwa ia membutuhkan O(n) ruang tambahan, dan memerlukan inisialisasi default untuk elemen yang diurutkan.
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. Ini secara semantik setara for_each dengan fungsi di std namespace layanan, kecuali bahwa iterasi atas elemen dilakukan secara paralel, dan urutan iterasi tidak 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 blok hingga 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 ke dalam urutan non-turun, atau sesuai dengan kriteria pemesanan yang ditentukan oleh predikat biner, secara paralel. Fungsi ini secara semantik mirip std::sort dengan di mana fungsi ini adalah pengurutan berbasis perbandingan, tidak stabil, di tempat.
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 std::transformdengan .
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 (Runtime Konkurensi)
Fungsi set_task_execution_resources Kelebihan beban. Membatasi sumber daya eksekusi yang digunakan oleh utas pekerja internal Concurrency Runtime ke set afinitas yang ditentukan.

Ini valid untuk memanggil metode ini hanya sebelum Resource Manager dibuat, atau di 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.
Fungsi task_from_exception (Runtime Konkurensi)
Fungsi task_from_result (Runtime Konkurensi)
Fungsi Trace_agents_register_name Mengaitkan nama yang diberikan ke blok pesan atau agen dalam jejak 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 ditembakkan oleh pustaka Agen di Runtime Konkurensi.
ChoreEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan tugas atau tugas.
ConcRT_ProviderGuid GUID penyedia ETW untuk Runtime Konkurensi.
CONCRT_RM_VERSION_1 Menunjukkan dukungan antarmuka Resource Manager yang ditentukan dalam Visual Studio 2010.
ConcRTEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang tidak lebih spesifik dijelaskan oleh kategori lain.
ContextEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi 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 prioritas utas semua konteks dalam penjadwal harus sama dengan utas yang membuat penjadwal.
LockEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan kunci.
MaxExecutionResources Nilai khusus untuk kunci MinConcurrency kebijakan dan MaxConcurrency. Default ke jumlah utas perangkat keras pada komputer tanpa adanya batasan lain.
PPLParallelForeachEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan penggunaan parallel_for_each fungsi.
PPLParallelForEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan penggunaan parallel_for fungsi.
PPLParallelInvokeEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan penggunaan parallel_invoke fungsi.
ResourceManagerEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan manajer sumber daya.
ScheduleGroupEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan grup jadwal.
SchedulerEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi yang terkait langsung dengan aktivitas penjadwal.
VirtualProcessorEventGuid GUID kategori yang menjelaskan peristiwa ETW yang ditembakkan oleh Runtime Konkurensi 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

Baca juga

Referensi