2011-10-07 80 views
1

如何确定给定函数调用正在运行的线程?确定当前范围的线程

我想确保在主线程上调用一个方法来更新一些UI元素。

我可以举例说明吗?

- (void) myMethod { 
    if (<current thread is not main thread>) { 
     [self performSelectorOnMainThread: @selector(myMethod) withObject: nil waitUntilDone: NO]; 
    } else { 
     // my code here 
    } 
} 

回答

3
+1

工作;两个警告。有时候,锁定到runloop而不是线程会更有用(每个线程有一个runloop,所以它是同义词,但有时候更有意义的说明)。如果使用dispatch_ *或NSOperation * API,则线程可能相对随机。 – bbum

+0

谢谢比尔..我试图让Errol保持简单,但你记住了很多要点。 –

+0

简单是可取的...直到它停止工作。 :) – bbum