![](/img/trans.png)
[英]How to shift operation from main queue to background releasing the main queue
[英]Can invoking iOS main thread operation from background queue interrupt a method call?
可以說我有一個剛剛完成的后台隊列,最后它將在主線程上做一些事情:
-(void) backgroundThreadFunction {
//Some stuff on background thread.
dispatch_async(dispatch_get_main_queue(), ^{
[self doSomeNetworkStuff];
});
}
可以說在主線程中,已經有一個正在運行的方法:
-(void)myMainMethod{
//Running some tasks.
}
iOS是否要等到myMainMethod完成才能允許doSomeNetworkStuff()運行? 還是允許它中斷?
不,它不能打擾。 一行dispatch_async(dispatch_get_main_queue(), ^{
將塊添加到主隊列中。當前方法已在主隊列上運行。
就像在銀行與一個櫃員站在一起。 人們排隊等候,輪到他們了。 當前的客戶不會被下一個排隊的人打擾(讓我們假設這是禮貌的排隊)。
一旦myMainMethod
(當前客戶)完成(並且調用它的方法也完成,等等),然后將處理隊列中的下一個塊(下一個客戶)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.