0
如果我產生一個輔助線程和線程方法調用其他方法,這些方法運行在輔助線程或主線程?通過線程問題
有沒有辦法確定在哪個線程上運行指定的代碼段?
如果我產生一個輔助線程和線程方法調用其他方法,這些方法運行在輔助線程或主線程?通過線程問題
有沒有辦法確定在哪個線程上運行指定的代碼段?
所有的方法都發生在當前線程,除非你做類似performSelectorInBackground:
你大概可以告訴,如果你在主線程中運行,通過比較[NSRunLoop currentRunLoop]
到[NSRunLoop mainRunLoop]
(1),交替地指出:所有到對象的消息都是在它們發送的同一個線程上接收到的。除非它明確創建線程,否則沒有創建線程。 (「記錄爲創建線程」計爲「顯式創建線程」)(2):或者發送'[NSThread isMainThread]'。但是,程序不需要測試它是否在主線程上運行。任何給定的代碼應該(a)只運行在(main |次要)線程上,或者(b)不關心它運行的線程。 – 2010-04-16 05:41:00
另請參見[NSThread currentThread]和[NSThread mainThread]。 – JeremyP 2010-04-16 15:08:58