namespace konkurensi

Namespace Concurrency menyediakan kelas dan fungsi yang memberi Anda akses ke Concurrency Runtime, kerangka pemrograman bersamaan untuk C ++. Untuk informasi selengkapnya, lihat Concurrency 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 perpesanan. Ini tidak bisa menjadi alamat objek pesan.
task_status Jenis yang mewakili keadaan terminal tugas. Nilai yang berlaku adalah completed atau canceled.
TaskProc Abstraksi dasar untuk suatu tugas, didefinisikan sebagai void (__cdecl * TaskProc)(void *). A TaskProc dipanggil untuk memanggil tubuh tugas.
TaskProc_t Abstraksi dasar untuk suatu tugas, didefinisikan sebagai void (__cdecl * TaskProc_t)(void *). A TaskProc dipanggil untuk memanggil tubuh tugas.

Kelas

Nama Deskripsi
Kelas affinity_partitioner Kelas ini affinity_partitioner mirip static_partitioner dengan kelas, tetapi meningkatkan afinitas cache dengan pilihan pemetaan subranges ke thread pekerja. Ini dapat meningkatkan kinerja secara signifikan ketika loop dijalankan kembali melalui kumpulan data yang sama, dan data cocok dalam cache. Perhatikan bahwa objek yang sama affinity_partitioner harus digunakan dengan iterasi berikutnya dari loop paralel yang dijalankan melalui kumpulan data tertentu, untuk mendapatkan keuntungan 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 partisi ini menggunakan pencurian rentang untuk penyeimbangan beban serta pembatalan per-iterasi.
Kelas bad_target Kelas ini menjelaskan pengecualian yang dilemparkan ketika blok pesan diberikan pointer ke target yang tidak valid untuk operasi yang sedang dilakukan.
Kelas panggilan Blok call pesan adalah multi-sumber, yang dipesan 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_group, atau task untuk memberikan pembatalan implisit. Hal ini juga dapat disurvei untuk pembatalan atau memiliki callback terdaftar untuk jika dan ketika terkait cancellation_token_source dibatalkan.
Kelas cancellation_token_registration Kelas cancellation_token_registration mewakili pemberitahuan callback dari cancellation_token. register Ketika metode pada a cancellation_token digunakan untuk menerima pemberitahuan kapan pembatalan terjadi, objek cancellation_token_registration dikembalikan sebagai pegangan ke callback sehingga penelepon dapat meminta callback 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 Blok choice pesan adalah multi-sumber, blok target tunggal yang mewakili interaksi control-flow dengan satu set sumber. Blok pilihan akan menunggu salah satu dari beberapa sumber untuk menghasilkan pesan dan akan menyebarkan indeks sumber yang menghasilkan pesan.
Kelas gabungan Objek ini combinable<T> dimaksudkan untuk menyediakan salinan data thread-private, untuk melakukan sub-perhitungan thread-local bebas kunci selama algoritma paralel. Pada akhir operasi paralel, sub-perhitungan thread-private kemudian dapat digabungkan menjadi hasil akhir. Kelas ini dapat digunakan sebagai pengganti variabel bersama, dan dapat menghasilkan peningkatan kinerja jika jika tidak akan ada banyak perselisihan pada variabel bersama itu.
Kelas concurrent_priority_queue Kelas adalah concurrent_priority_queue wadah yang memungkinkan beberapa thread untuk secara bersamaan mendorong dan pop item. Item muncul dalam urutan prioritas di mana prioritas ditentukan oleh functor yang disediakan sebagai argumen template.
Kelas concurrent_queue Kelas ini concurrent_queue adalah kelas kontainer urutan yang memungkinkan akses pertama ke elemen-elemennya. Hal ini memungkinkan satu set terbatas operasi konkurensi-aman, seperti push dan try_pop.
Kelas concurrent_unordered_map Kelas ini concurrent_unordered_map adalah wadah yang aman konkurensi yang mengontrol urutan elemen tipe std::pair<const K, _Element_type>yang bervariasi. Urutan diwakili dengan cara yang memungkinkan konkurensi-aman append, akses elemen, akses iterator, dan operasi traversal iterator.
Kelas concurrent_unordered_multimap Kelas adalah concurrent_unordered_multimap wadah yang aman konkurensi yang mengontrol urutan elemen tipe std::pair<const K, _Element_type>yang bervariasi. Urutan diwakili dengan cara yang memungkinkan penambahan konkurensi-aman, akses elemen, akses iterator dan operasi traversal iterator.
Kelas concurrent_unordered_multiset Kelas ini concurrent_unordered_multiset adalah wadah yang aman konkurensi yang mengontrol urutan elemen tipe K yang bervariasi. Urutan diwakili dengan cara yang memungkinkan penambahan konkurensi-aman, akses elemen, akses iterator dan operasi traversal iterator.
Kelas concurrent_unordered_set Kelas ini concurrent_unordered_set adalah wadah yang aman konkurensi yang mengontrol urutan elemen tipe K yang bervariasi. Urutan diwakili dengan cara yang memungkinkan penambahan konkurensi-aman, akses elemen, akses iterator dan operasi traversal iterator.
Kelas concurrent_vector Kelas adalah concurrent_vector kelas kontainer urutan yang memungkinkan akses acak ke elemen apa pun. Ini memungkinkan penambahan konkurensi-aman, 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 suatu Context objek dipanggil dari konteks yang sama. Ini akan menunjukkan upaya oleh konteks tertentu untuk membuka blokir dirinya sendiri.
Kelas context_unblock_unbalanced Kelas ini menjelaskan pengecualian yang dilemparkan ketika panggilan ke Block dan Unblock metode suatu Context objek tidak dipasangkan dengan benar.
Kelas critical_section Mutex yang tidak masuk kembali yang secara eksplisit menyadari Concurrency Runtime.
Kelas CurrentScheduler Mewakili abstraksi untuk penjadwal saat ini yang terkait dengan konteks panggilan.
Kelas default_scheduler_exists Kelas ini menjelaskan pengecualian yang dilemparkan ketika Scheduler::SetDefaultSchedulerPolicy metode dipanggil ketika penjadwal default sudah ada dalam proses.
Kelas acara Peristiwa reset manual yang secara eksplisit mengetahui Concurrency Runtime.
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 melekat pada 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 objek Scheduler .
Kelas improper_scheduler_reference Kelas ini menjelaskan pengecualian yang dilemparkan ketika Reference metode dipanggil pada objek yang Scheduler dimatikan, dari konteks yang bukan bagian dari penjadwal itu.
Kelas invalid_link_target Kelas ini menjelaskan pengecualian yang dilemparkan ketika link_target metode blok perpesanan dipanggil dan blok perpesanan tidak dapat menautkan ke target. Ini bisa menjadi hasil dari melebihi jumlah tautan yang diizinkan oleh blok perpesanan atau mencoba menautkan target tertentu dua kali ke sumber yang sama.
Kelas invalid_multiple_scheduling Kelas ini menjelaskan pengecualian yang dilemparkan ketika objek task_handle dijadwalkan beberapa kali menggunakan run metode a task_group atau structured_task_group objek tanpa panggilan intervensi ke metode wait atau run_and_wait metode.
Kelas invalid_operation Kelas ini menjelaskan pengecualian yang dilemparkan ketika operasi yang tidak valid dilakukan yang tidak dijelaskan secara lebih akurat oleh jenis pengecualian lain yang dilemparkan oleh Concurrency Runtime.
Kelas invalid_oversubscribe_operation Kelas ini menjelaskan pengecualian yang dilemparkan ketika Context::Oversubscribe metode dipanggil dengan _BeginOversubscription parameter yang diatur false tanpa panggilan sebelumnya ke Context::Oversubscribe metode dengan parameter yang _BeginOversubscription diatur 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 dilewatkan 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 menetapkan batas konkurensi suatu SchedulerPolicy objek sehingga nilai MinConcurrency kunci kurang dari MaxConcurrency nilai kunci.
Kelas invalid_scheduler_policy_value Kelas ini menjelaskan pengecualian yang dilemparkan saat kunci kebijakan objek SchedulerPolicy diatur ke nilai yang tidak valid untuk kunci tersebut.
Kelas ISource Kelas ISource adalah antarmuka untuk semua blok sumber. Blok sumber menyebarkan pesan ke ITarget blok.
Kelas ITarget Kelas ITarget adalah antarmuka untuk semua blok target. Blok target mengkonsumsi pesan yang ditawarkan kepada mereka melalui ISource blok.
bergabung dengan Kelas Blok join perpesanan adalah target tunggal, multi-sumber, yang dipesan propagator_block yang menggabungkan pesan tipe T dari masing-masing sumbernya.
Kelas lokasi Abstraksi lokasi fisik pada perangkat keras.
Kelas pesan Amplop pesan dasar yang berisi payload data diteruskan di antara blok pesan.
Kelas message_not_found Kelas ini menjelaskan pengecualian yang dilemparkan ketika blok pesan tidak dapat menemukan pesan yang diminta.
Kelas message_processor Kelas message_processor adalah kelas dasar abstrak untuk pemrosesan message objek. Tidak ada jaminan pada pemesanan pesan.
Kelas missing_wait Kelas ini menjelaskan pengecualian yang dilemparkan ketika ada tugas yang masih dijadwalkan ke a task_group atau structured_task_group objek pada saat destructor objek mengeksekusi. Pengecualian ini tidak akan pernah dilemparkan jika destructor tercapai karena tumpukan melepas sebagai hasil dari pengecualian.
Kelas multi_link_registry Objek multi_link_registry adalah objek yang network_link_registry mengelola beberapa blok sumber atau beberapa blok target.
Kelas multitype_join Blok multitype_join perpesanan adalah multi-sumber, blok pesan target tunggal yang menggabungkan 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 Concurrency Runtime mendeteksi bahwa Anda lalai memanggil CurrentScheduler::Detach metode pada konteks yang melekat pada 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 habis waktunya.
Kelas ordered_message_processor An ordered_message_processor adalah a yang message_processor memungkinkan blok pesan untuk memproses pesan dalam urutan yang diterima.
Kelas overwrite_buffer Blok overwrite_buffer pesan adalah multi-target, multi-sumber, yang dipesan propagator_block yang mampu menyimpan satu pesan pada satu waktu. Pesan baru menimpa pesan yang sebelumnya dipegang.
Kelas progress_reporter Kelas reporter kemajuan memungkinkan pemberitahuan kemajuan pelaporan dari jenis tertentu. Setiap objek progress_reporter terikat pada tindakan atau operasi asinkron tertentu.
Kelas propagator_block Kelas adalah propagator_block kelas dasar abstrak untuk blok pesan yang merupakan sumber dan target. Ini menggabungkan fungsionalitas dari kedua source_block dan target_block kelas.
Kelas reader_writer_lock Pembaca-penulis berbasis antrian preferensi penulis mengunci dengan pemintalan lokal saja. Kunci memberikan akses first in - first out (FIFO) ke penulis dan membuat pembaca kelaparan di bawah beban penulis yang terus menerus.
Kelas ScheduleGroup Mewakili abstraksi untuk grup jadwal. Jadwalkan grup mengatur serangkaian pekerjaan terkait yang mendapat manfaat dari dijadwalkan berdekatan baik secara temporal, dengan menjalankan tugas lain dalam kelompok yang sama sebelum pindah ke grup lain, atau secara spasial, dengan mengeksekusi beberapa item dalam grup yang sama pada node 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 untuk dilampirkan ke konteks saat ini dan satu tidak.
Kelas scheduler_resource_allocation_error Kelas ini menjelaskan pengecualian yang dilemparkan karena kegagalan untuk memperoleh sumber daya penting dalam Concurrency Runtime.
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 satu set pasangan kunci / nilai, satu untuk setiap elemen kebijakan, yang mengontrol perilaku instans penjadwal.
Kelas simple_partitioner Kelas mewakili simple_partitioner partisi statis dari rentang yang dilirik oleh parallel_for. Partitioner membagi rentang menjadi potongan-potongan sehingga setiap potongan memiliki setidaknya jumlah iterasi yang ditentukan oleh ukuran potongan.
Kelas single_assignment Blok single_assignment pesan adalah multi-target, multi-sumber, dipesan propagator_block mampu menyimpan satu, menulis-sekali message.
Kelas single_link_registry Objek single_link_registry adalah objek yang network_link_registry hanya mengelola satu sumber atau blok target.
Kelas source_block Kelas adalah source_block 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 pesan ke ISource blok.
Kelas static_partitioner Kelas mewakili static_partitioner partisi statis dari rentang yang dilirik oleh parallel_for. Partisi membagi rentang menjadi potongan sebanyak ada pekerja yang tersedia untuk penjadwal yang mendasarinya.
Kelas structured_task_group Kelas ini structured_task_group mewakili koleksi karya paralel yang sangat terstruktur. Anda dapat mengantri tugas paralel individual ke objek yang structured_task_group digunakan task_handle , dan menunggu mereka selesai, atau membatalkan grup tugas sebelum selesai dieksekusi, yang akan membatalkan tugas apa pun yang belum memulai eksekusi.
Kelas target_block Kelas ini target_block adalah kelas dasar abstrak yang menyediakan fungsionalitas manajemen tautan dasar dan pemeriksaan kesalahan untuk blok target saja.
Kelas tugas (Runtime Konkurensi) Kelas Perpustakaan Pola Paralel (PPL task ). Sebuah task objek mewakili pekerjaan yang dapat dijalankan secara asinkron, dan bersamaan dengan tugas-tugas lain dan pekerjaan paralel yang dihasilkan oleh algoritma paralel dalam Concurrency Runtime. 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-tugas lain. Hal ini juga dapat disusun dengan tugas-tugas lain menggunakan continuations(then), dan join(when_all) dan choice(when_any) pola.
Kelas task_canceled Kelas ini menjelaskan pengecualian yang dilemparkan oleh lapisan tugas PPL untuk memaksa tugas saat ini dibatalkan. Itu juga dilemparkan oleh get() metode pada tugas, untuk tugas yang dibatalkan.
Kelas task_completion_event Kelas memungkinkan task_completion_event Anda untuk menunda pelaksanaan tugas sampai suatu kondisi terpenuhi, atau memulai tugas sebagai respons terhadap peristiwa eksternal.
Kelas task_continuation_context Kelas ini task_continuation_context memungkinkan Anda untuk menentukan di mana Anda ingin kelanjutan dieksekusi. Hanya berguna untuk menggunakan kelas ini dari aplikasi UWP. Untuk aplikasi non-Windows 运行时, konteks eksekusi kelanjutan tugas ditentukan oleh runtime, dan tidak dapat dikonfigurasi.
Kelas task_group Kelas mewakili task_group kumpulan karya paralel yang dapat ditunggu atau dibatalkan.
Kelas task_handle Kelas mewakili task_handle item kerja paralel individu. Ini merangkum instruksi dan data yang diperlukan untuk mengeksekusi sepotong pekerjaan.
Kelas task_options (Konkurensi Runtime) Mewakili opsi yang diizinkan untuk membuat tugas
Kelas timer Blok timer pesan adalah target source_block tunggal yang mampu mengirim pesan ke targetnya setelah jangka waktu tertentu berlalu atau pada interval tertentu.
Kelas transformator Blok transformer pesan adalah target tunggal, multi-sumber, yang dipesan propagator_block yang dapat menerima pesan dari satu jenis dan mampu menyimpan jumlah pesan yang tidak terbatas dari jenis yang berbeda.
Kelas unbounded_buffer Blok unbounded_buffer pesan adalah multi-target, multi-sumber, yang dipesan propagator_block yang mampu menyimpan sejumlah 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 ini DispatchState digunakan untuk mentransfer status ke IExecutionContext::Dispatch metode. Ini menggambarkan 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 konteksnya diaktifkan.
Struktur IExecutionResource Abstraksi untuk utas perangkat keras.
Struktur IResourceManager Antarmuka ke Resource Manager Concurrency Runtime. Ini adalah antarmuka di mana 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 di mana penjadwal berkomunikasi dengan Resource Manager Concurrency Runtime untuk menegosiasikan alokasi sumber daya.
Struktur IThreadProxy Abstraksi untuk thread eksekusi. Bergantung pada SchedulerType kunci kebijakan penjadwal yang Anda buat, Resource Manager akan memberi Anda proxy utas yang didukung oleh utas Win32 biasa atau utas yang dapat dijadwalkan mode pengguna (UMS). Thread UMS didukung pada sistem operasi 64-bit dengan versi Windows 7 dan lebih tinggi.
Struktur ITopologyExecutionResource Antarmuka ke sumber daya eksekusi seperti yang didefinisikan oleh Resource Manager.
Struktur ITopologiNode Antarmuka ke simpul topologi seperti yang didefinisikan oleh Resource Manager. Node berisi satu atau beberapa sumber daya eksekusi.
Struktur Daftar Kompletion IUMS Mewakili daftar penyelesaian UMS. Ketika thread UMS diblokir, konteks penjadwalan yang ditunjuk penjadwal dikirim untuk membuat keputusan tentang apa yang harus dijadwalkan pada root prosesor virtual yang mendasari sementara thread asli diblokir. Ketika thread asli membuka blokir, sistem operasi mengantri ke daftar penyelesaian yang dapat diakses melalui antarmuka ini. Penjadwal dapat menanyakan daftar penyelesaian pada konteks penjadwalan yang ditentukan atau tempat lain yang dicari untuk bekerja.
Struktur IUMSScheduler Antarmuka ke abstraksi penjadwal kerja yang menginginkan Resource Manager Concurrency Runtime untuk menyerahkan utas penjadwalan mode pengguna (UMS). Resource Manager menggunakan antarmuka ini untuk berkomunikasi dengan penjadwal thread UMS. Antarmuka IUMSScheduler mewarisi dari IScheduler antarmuka.
Struktur IUMSThreadProxy Abstraksi untuk thread eksekusi. Jika Anda ingin penjadwal Anda diberikan utas yang dapat dijadwalkan mode pengguna (UMS), atur nilai untuk elemen SchedulerKind kebijakan penjadwal ke UmsThreadDefault, dan terapkan IUMSScheduler antarmuka. Thread UMS hanya didukung pada sistem operasi 64-bit dengan versi Windows 7 dan lebih tinggi.
Struktur Anotifikasi IUMSUnblock Mewakili pemberitahuan dari Resource Manager bahwa proxy utas yang memblokir dan memicu kembalinya ke konteks penjadwalan yang ditunjuk penjadwal telah tidak diblokir dan siap untuk dijadwalkan. Antarmuka ini tidak valid setelah konteks eksekusi terkait proxy utas, dikembalikan dari metode, dijadwal GetContext ulang.
Struktur IVirtualProcessorRoot Abstraksi untuk utas perangkat keras tempat proxy utas dapat dijalankan.
Struktur scheduler_interface Antarmuka Penjadwal
Struktur scheduler_ptr (Konkurensi Runtime) Mewakili penunjuk ke penjadwal. Kelas ini ada untuk memungkinkan spesifikasi seumur hidup bersama dengan menggunakan shared_ptr atau hanya referensi biasa dengan menggunakan pointer mentah.

Enumerasi

Nama Deskripsi
agent_status Negara-negara yang agentberlaku untuk .
Agents_EventType Jenis-jenis peristiwa yang dapat ditelusuri menggunakan fungsi penelusuran yang ditawarkan oleh Perpustakaan Agen
ConcRT_EventType Jenis peristiwa yang dapat dilacak menggunakan fungsi penelusuran yang ditawarkan oleh Concurrency Runtime.
Concrt_TraceFlags Melacak bendera untuk jenis acara
CriticalRegionType Jenis wilayah kritis yang konteksnya ada di dalamnya.
DynamicProgressFeedbackType Digunakan oleh DynamicProgressFeedback kebijakan untuk menggambarkan 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 keadaan idle melalui panggilan ke Activate dan Deactivate metode pada IVirtualProcessorRoot antarmuka. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
join_type Jenis join blok pesan.
message_status Tanggapan yang valid untuk tawaran objek message ke blok.
PolicyElementKey Kunci kebijakan yang menggambarkan aspek perilaku penjadwal. Setiap elemen kebijakan dijelaskan oleh pasangan nilai kunci. Untuk informasi selengkapnya tentang kebijakan penjadwal dan dampaknya terhadap penjadwal, lihat Penjadwal Tugas.
SchedulerType Digunakan oleh SchedulerKind kebijakan untuk menggambarkan jenis thread yang harus digunakan penjadwal untuk konteks eksekusi yang mendasarinya. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
PenjadwalanProtocolType Digunakan oleh SchedulingProtocol kebijakan untuk menggambarkan algoritma penjadwalan mana yang akan digunakan untuk penjadwal. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.
BeralihProxyState Digunakan untuk menunjukkan keadaan proxy thread berada, ketika mengeksekusi konteks kooperatif beralih ke proxy thread yang berbeda.
task_group_status Menjelaskan status eksekusi a task_group atau structured_task_group objek. Nilai jenis ini dikembalikan dengan berbagai metode yang menunggu tugas yang dijadwalkan ke grup tugas untuk diselesaikan.
WinRTInitializationType Digunakan oleh WinRTInitialization kebijakan untuk menggambarkan apakah dan bagaimana Windows 运行时 akan diinsialisasi pada thread penjadwal untuk aplikasi yang berjalan pada sistem operasi dengan versi Windows 8 atau lebih tinggi. Untuk informasi selengkapnya tentang kebijakan penjadwal yang tersedia, lihat PolicyElementKey.

Fungsi

Nama Deskripsi
Fungsi Alloc Mengalokasikan blok memori dengan 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 tubuh tugas untuk membatalkan eksekusi tugas dan menyebabkannya memasuki canceled keadaan.

Ini bukan skenario yang didukung untuk memanggil fungsi ini jika Anda tidak berada dalam tubuh task. Melakukan hal itu akan mengakibatkan perilaku yang tidak terdefinisi seperti crash atau tidak responsif dalam aplikasi Anda.
Fungsi create_async Membuat konstruksi asinkron Windows 运行时 berdasarkan lambda atau objek fungsi yang disediakan pengguna. Jenis create_async pengembalian adalah salah satu IAsyncAction^dari , 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 tunggal dari Resource Manager Concurrency Runtime. Resource Manager bertanggung jawab untuk menetapkan sumber daya kepada penjadwal yang ingin bekerja sama satu sama lain.
Fungsi DisableTracing Menonaktifkan penelusuran di Concurrency Runtime. Fungsi ini tidak digunakan lagi karena pelacakan ETW tidak terdaftar secara default.
Fungsi EnableTracing Mengaktifkan penelusuran di Concurrency Runtime. Fungsi ini tidak digunakan lagi karena pelacakan ETW sekarang menyala secara default.
Fungsi Gratis Merilis blok memori yang sebelumnya dialokasikan dengan Alloc metode ke Concurrency Runtime Caching Suballocator.
Fungsi get_ambient_scheduler (Concurrency Runtime)
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 mendasarinya.
Fungsi GetProcessorNodeCount Mengembalikan jumlah node NUMA atau paket prosesor pada sistem yang mendasarinya.
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 memberikan 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 inline pada konteks saat ini berada di tengah-tengah pembatalan aktif (atau akan segera). Perhatikan bahwa jika tidak ada grup tugas yang saat ini menjalankan inline pada konteks saat ini, false akan dikembalikan.
Fungsi make_choice Kelebihan beban. choice Membangun blok pesan dari opsional Scheduler atau ScheduleGroup dan dua atau lebih sumber input.
Fungsi make_greedy_join Kelebihan beban. greedy multitype_join Membangun blok pesan dari opsional Scheduler atau ScheduleGroup dan dua atau lebih sumber input.
Fungsi make_join Kelebihan beban. non_greedy multitype_join Membangun blok pesan dari opsional Scheduler atau ScheduleGroup dan dua atau lebih sumber input.
Fungsi make_task Metode pabrik untuk membuat objek task_handle .
Fungsi parallel_buffered_sort Kelebihan beban. Mengatur elemen dalam rentang tertentu menjadi urutan non-turun, atau sesuai dengan kriteria pemesanan yang ditentukan oleh predikat biner, secara paralel. Fungsi ini secara semantik mirip std::sort dengan dalam hal ini adalah jenis berbasis perbandingan, 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 iterasi atas berbagai indeks dan mengeksekusi fungsi yang disediakan pengguna pada setiap iterasi, secara paralel.
Fungsi parallel_for_each Kelebihan beban. parallel_for_each menerapkan fungsi tertentu untuk setiap elemen dalam rentang, secara paralel. Ini semantik setara for_each dengan fungsi di std namespace, kecuali bahwa iterasi atas elemen dilakukan secara paralel, dan urutan iterasi tidak ditentukan. Argumen _Func harus mendukung operator panggilan fungsi dari formulir operator()(T) di mana parameter T adalah jenis item dari kontainer yang di iterasi.
Fungsi parallel_invoke Kelebihan beban. Mengeksekusi objek fungsi yang disediakan sebagai parameter secara paralel, dan blok sampai selesai dieksekusi. Setiap objek fungsi bisa menjadi 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 non-turun menggunakan algoritma penyortiran radix. Ini adalah fungsi sortir stabil yang membutuhkan fungsi proyeksi yang dapat memproyeksikan elemen untuk diurutkan menjadi kunci seperti bilangan bulat yang tidak ditandatangani. Inisialisasi default diperlukan untuk elemen yang diurutkan.
Fungsi parallel_reduce Kelebihan beban. Menghitung jumlah semua elemen dalam rentang tertentu dengan menghitung jumlah parsial berturut-turut, atau menghitung hasil dari hasil parsial berturut-turut yang juga diperoleh dari menggunakan operasi biner tertentu selain jumlah, secara paralel. parallel_reduce Secara semantik mirip std::accumulatedengan , kecuali bahwa itu membutuhkan operasi biner untuk menjadi asosiatif, dan membutuhkan nilai identitas, bukan nilai awal.
Fungsi parallel_sort Kelebihan beban. Mengatur elemen dalam rentang tertentu menjadi urutan non-turun, atau sesuai dengan kriteria pemesanan yang ditentukan oleh predikat biner, secara paralel. Fungsi ini secara semantik mirip std::sort dengan dalam hal ini adalah jenis berbasis perbandingan, tidak stabil, di tempat.
Fungsi parallel_transform Kelebihan beban. Menerapkan objek fungsi tertentu untuk 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 .
menerima Fungsi Kelebihan beban. Implementasi penerimaan umum, memungkinkan konteks untuk menunggu data dari satu sumber dan memfilter nilai yang diterima.
Fungsi run_with_cancellation_token Mengeksekusi objek fungsi dengan segera dan sinkron dalam konteks token pembatalan yang diberikan.
kirim Fungsi Kelebihan beban. Operasi pengiriman sinkron, yang menunggu sampai target menerima atau menolak pesan.
Fungsi set_ambient_scheduler (Concurrency Runtime)
Fungsi set_task_execution_resources Kelebihan beban. Membatasi sumber daya eksekusi yang digunakan oleh utas pekerja internal Concurrency Runtime ke set afinitas yang ditentukan.

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

Masker afinitas yang disediakan tidak perlu menjadi bagian dari topeng afinitas proses. Afinitas proses akan diperbarui jika perlu.
Fungsi swap Bertukar elemen dari dua concurrent_vector objek.
Fungsi task_from_exception (Konkurensi Runtime)
Fungsi task_from_result (Concurrency Runtime)
Fungsi Trace_agents_register_name Mengaitkan nama yang diberikan ke blok pesan atau agen dalam jejak ETW.
Fungsi try_receive Kelebihan beban. Implementasi try-receive umum, memungkinkan konteks untuk mencari data dari satu sumber dan memfilter nilai yang diterima. Jika data belum siap, metode akan mengembalikan false.
Fungsi tunggu Menjeda konteks saat ini untuk jangka waktu tertentu.
Fungsi when_all Membuat tugas yang akan berhasil diselesaikan ketika semua tugas yang diberikan sebagai argumen berhasil diselesaikan.
Fungsi when_any Kelebihan beban. Membuat tugas yang akan berhasil diselesaikan ketika salah satu tugas yang diberikan saat argumen berhasil diselesaikan.

Operator

Nama Deskripsi
operator!= Uji 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 diberikan sebagai argumen berhasil diselesaikan.
operator|| Kelebihan beban. Membuat tugas yang akan berhasil diselesaikan ketika salah satu tugas yang diberikan saat 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 Kategori GUID ({B9B5B78C-0713-4898-A21A-C67949DCED07}) yang menggambarkan peristiwa ETW yang dipecat oleh pustaka Agen di Concurrency Runtime.
ChoreEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan tugas atau tugas.
ConcRT_ProviderGuid Penyedia ETW GUID untuk Concurrency Runtime.
CONCRT_RM_VERSION_1 Menunjukkan dukungan antarmuka Resource Manager yang didefinisikan pada Visual Studio 2010.
ConcRTEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang tidak dijelaskan secara lebih spesifik oleh kategori lain.
ContextEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan konteks.
COOPERATIVE_TIMEOUT_INFINITE Nilai yang menunjukkan bahwa menunggu seharusnya tidak pernah habis.
COOPERATIVE_WAIT_TIMEOUT Nilai menunjukkan bahwa menunggu habis waktunya.
INHERIT_THREAD_PRIORITY Nilai khusus untuk kunci ContextPriority kebijakan yang menunjukkan bahwa prioritas thread dari semua konteks dalam penjadwal harus sama dengan thread yang membuat penjadwal.
LockEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan kunci.
MaxExecutionResources Nilai khusus untuk kunci MinConcurrency kebijakan dan MaxConcurrency. Default ke jumlah utas perangkat keras pada mesin tanpa adanya batasan lain.
PPLParallelForeachEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan parallel_for_each penggunaan fungsi.
PPLParallelForEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan parallel_for penggunaan fungsi.
PPLParallelInvokeEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan parallel_invoke penggunaan fungsi.
ResourceManagerEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan manajer sumber daya.
JadwalGroupEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan grup jadwal.
SchedulerEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime yang terkait langsung dengan aktivitas penjadwal.
VirtualProcessorEventGuid Kategori GUID yang menjelaskan peristiwa ETW yang dipecat oleh Concurrency Runtime 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