সুইফটে 4.2 এবং এক্সকোড 10.1
আমাদের তিন ধরণের কুইউ রয়েছে:
১. প্রধান সারি:
মূল সারি একটি ক্রমিক সারি যা সিস্টেম তৈরি করে এবং অ্যাপ্লিকেশন মূল থ্রেডের সাথে যুক্ত।
২. গ্লোবাল কিউ:
গ্লোবাল কিউ হ'ল একটি যুগ্ম কাত যা আমরা কাজের অগ্রাধিকারের প্রতি শ্রদ্ধার সাথে অনুরোধ করতে পারি।
৩. কাস্টম সারি: ব্যবহারকারীর দ্বারা তৈরি করা যেতে পারে। কাস্টম সমবর্তী সারিবদ্ধগুলি সর্বদা বিশ্বব্যাপী সারিতে একটি মান মানের পরিষেবার সম্পত্তি (QoS) নির্দিষ্ট করে ম্যাপ করে pped
DispatchQueue.main//Main thread
DispatchQueue.global(qos: .userInitiated)// High Priority
DispatchQueue.global(qos: .userInteractive)//High Priority (Little Higher than userInitiated)
DispatchQueue.global(qos: .background)//Lowest Priority
DispatchQueue.global(qos: .default)//Normal Priority (after High but before Low)
DispatchQueue.global(qos: .utility)//Low Priority
DispatchQueue.global(qos: .unspecified)//Absence of Quality
এই সমস্ত সারি দুটি উপায়ে কার্যকর করা যেতে পারে
1. সিঙ্ক্রোনাস এক্সিকিউশন
2. অ্যাসিঙ্ক্রোনাস কার্যকর
DispatchQueue.global(qos: .background).async {
// do your job here
DispatchQueue.main.async {
// update ui here
}
}
//Perform some task and update UI immediately.
DispatchQueue.global(qos: .userInitiated).async {
// Perform task
DispatchQueue.main.async {
// Update UI
self.tableView.reloadData()
}
}
//To call or execute function after some time
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
//Here call your function
}
//If you want to do changes in UI use this
DispatchQueue.main.async(execute: {
//Update UI
self.tableView.reloadData()
})
অ্যাপকোডা থেকে: https://www.appcoda.com/grand-central-dispatch/
//This will print synchronously means, it will print 1-9 & 100-109
func simpleQueues() {
let queue = DispatchQueue(label: "com.appcoda.myqueue")
queue.sync {
for i in 0..<10 {
print("🔴", i)
}
}
for i in 100..<110 {
print("Ⓜ️", i)
}
}
//This will print asynchronously
func simpleQueues() {
let queue = DispatchQueue(label: "com.appcoda.myqueue")
queue.async {
for i in 0..<10 {
print("🔴", i)
}
}
for i in 100..<110 {
print("Ⓜ️", i)
}
}