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