Here I've a query about Difference between Threads
- Difference Between
DispatchQueue.global().sync
,DispatchQueue.global().async
,DispatchQueue.main.sync
andDispatchQueue.main.sync
Here's some questions where i do R&D.
- Difference Between DispatchQueue.sync vs DispatchQueue.async
- Is DispatchQueue.global(qos: .userInteractive).async same as DispatchQueue.main.async
- What does main.sync in global().async mean?
- main.async vs main.sync() vs global().async in Swift3 GCD
- Difference between DispatchQueue.main.async and DispatchQueue.main.sync
When I use DispatchQueue.global().sync
, DispatchQueue.global().async
and DispatchQueue.main.async
below Code it works perfectly
func loadimage(_ url: URL)
{
DispatchQueue.global().sync { // Here i used DispatchQueue.main.async , DispatchQueue.global().async and DispatchQueue.main.async
if let data1 = try? Data(contentsOf: url){
if let img = UIImage(data: data1){
DispatchQueue.main.async {
self.imgView.image = img
}
}
}
}
}
But when I use DispatchQueue.main.sync
the application crashes.
func loadimage(_ url: URL)
{
DispatchQueue.main.sync {
if let data1 = try? Data(contentsOf: url){
if let img = UIImage(data: data1){
DispatchQueue.main.async {
self.imgView.image = img
}
}
}
}
}
And I get below error on DispatchQueue.main.sync
Here
Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)