Bagikan melalui


DispatchQueue Kelas

Definisi

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

public sealed class DispatchQueue : CoreFoundation.DispatchObject
type DispatchQueue = class
    inherit DispatchObject
Warisan
DispatchQueue
Warisan

Keterangan

Antrean adalah mekanisme mendasar untuk menjadwalkan blok untuk eksekusi dalam kerangka kerja Apple Grand Central Dispatch.

Semua blok yang dikirimkan ke antrean pengiriman dihilangkan dalam urutan FIFO. Secara default, antrean yang dibuat dengan konstruktor default menunggu blok yang sebelumnya dibatalkan antreannya selesai sebelum menghapus antrean blok berikutnya. Perilaku penyelesaian FIFO ini terkadang hanya digambarkan sebagai "antrean serial." Antrean tidak terikat ke utas eksekusi dan blok tertentu yang dikirimkan ke antrean independen dapat dijalankan secara bersamaan. Antrean, seperti semua objek pengiriman, adalah referensi yang dihitung dan antrean yang baru dibuat memiliki jumlah referensi satu.

Antrean pengiriman bersamaan dibuat dengan meneruskan true sebagai nilai untuk parameter bersamaan pada konstruktor. Antrean bersamaan dapat memanggil blok secara bersamaan (mirip dengan antrean bersamaan global, tetapi berpotensi dengan lebih banyak overhead), dan mendukung blok penghalang yang dikirimkan dengan API penghalang pengiriman, misalnya memungkinkan implementasi skema pembaca-penulis yang efisien.

Argumen label opsional digunakan untuk menjelaskan tujuan antrean dan berguna selama penelusuran kesalahan dan analisis performa. Menurut konvensi, klien harus melewati label gaya DNS terbalik. Jika label disediakan, label akan disalin. Jika label tidak disediakan, maka properti Label mengembalikan string C kosong. Contohnya:

var my_queue = new DispatchQueue ("com.example.subsystem.taskXYZ");

Antrean dapat ditangguhkan sementara dan dilanjutkan dengan fungsi Suspend() dan Resume() masing-masing. Penangguhan diperiksa sebelum memblokir eksekusi dan tidak didahulukan.

Antrean pengiriman adalah T:System.Threading.SynchronizationContext sadar dan kecuali ada konteks sinkronisasi kustom yang ditetapkan untuk utas itu akan menginstal konteks sinkronisasinya sendiri untuk memastikan pengiriman konteks apa pun berakhir pada antrean pengiriman yang sama.

Api Penghubung Pengiriman

API penghalang pengiriman adalah mekanisme untuk mengirimkan blok penghalang ke antrean pengiriman, dianalogikan dengan DispatchAsync(Action)/DispatchSync(Action) metode. Ini memungkinkan implementasi skema pembaca/penulis yang efisien. Blok penghalang hanya bertingkah khusus ketika diserahkan ke antrean bersamaan; pada antrean seperti itu, blok penghalang tidak akan berjalan sampai semua blok yang dikirimkan ke antrean sebelumnya telah selesai, dan blok apa pun yang dikirimkan ke antrean setelah blok penghalang tidak akan berjalan sampai blok penghalang selesai. Ketika dikirimkan ke antrean global atau ke antrean non-bersamaan, blok penghalang bertingkah identik dengan blok yang dikirimkan dengan DispatchAsync(Action)/DispatchSync(Action) metode .

Konstruktor

DispatchQueue(IntPtr)

Menampilkan DispatchQueue yang tidak dikelola sebagai objek terkelola.

DispatchQueue(String)

Membuat antrean pengiriman bernama yang menserialisasikan semua blok yang dikirimkan.

DispatchQueue(String, Boolean)

Membuat antrean pengiriman bernama yang dapat secara opsional menjalankan kode yang dikirimkan secara bersamaan.

DispatchQueue(String, DispatchQueue+Attributes, DispatchQueue)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Properti

Context

Lampiran informasi konteks yang ditentukan pengguna ke DispatchQueue.

CurrentQueue

Pengembang tidak boleh menggunakan properti yang tidak digunakan lagi ini.

CurrentQueueLabel

Label untuk antrean saat ini.

DefaultGlobalQueue

Mengembalikan antrean global default, yang merupakan salah satu antrean bawaan pada prioritas default.

Handle

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
Label

Mengembalikan label untuk DispatchQueue ini.

MainQueue

Mengembalikan antrean global utama.

QualityOfService

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Metode

Activate()

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
Check()
Kedaluwarsa.

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
DispatchAfter(DispatchTime, Action)

Menjalankan waktu ini pada atau setelah waktu yang ditentukan.

DispatchAfter(DispatchTime, DispatchBlock)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchAsync(Action)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchAsync(DispatchBlock)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchBarrierAsync(Action)

Mengirimkan blok penghalang untuk eksekusi asinkron pada antrean pengiriman

DispatchBarrierAsync(DispatchBlock)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchBarrierSync(Action)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchBarrierSync(DispatchBlock)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchSync(Action)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

DispatchSync(DispatchBlock)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Dispose()

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
Dispose(Boolean)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
Equals(Object)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

GetGlobalQueue(DispatchQueuePriority)

Mengembalikan salah satu antrean pengiriman global berdasarkan prioritas yang diminta.

GetHashCode()

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

GetQualityOfService(Int32)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

GetSpecific(IntPtr)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

InitializeHandle(IntPtr)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari NativeObject)
MainIteration()

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Release()

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
Resume()

Melanjutkan eksekusi antrean.

Retain()

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
SetSpecific(IntPtr, Object)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

SetTargetQueue(DispatchQueue)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

(Diperoleh dari DispatchObject)
Submit(Action<Int32>, Int64)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Suspend()

Menangguhkan eksekusi antrean.

Operator

Equality(DispatchQueue, DispatchQueue)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Inequality(DispatchQueue, DispatchQueue)

Menyediakan antrean tugas yang dapat melakukan tugas baik secara sinkron atau asinkron.

Berlaku untuk

Lihat juga