簡體   English   中英

從后台隊列調用iOS主線程操作可以中斷方法調用嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM