1
,但被稱爲emethod是導致UI去響應。我認爲NSTImer回調會發生在與主線程不同的線程中,但似乎並非如此。使用iPhone的SDK 4.我有一個NSTimer調用的方法每3秒更換的NSTimer
我如何可以用的NSOperation或東西替換此所以這種方法仍然是所謂每隔3秒,但在後臺線程
,但被稱爲emethod是導致UI去響應。我認爲NSTImer回調會發生在與主線程不同的線程中,但似乎並非如此。使用iPhone的SDK 4.我有一個NSTimer調用的方法每3秒更換的NSTimer
我如何可以用的NSOperation或東西替換此所以這種方法仍然是所謂每隔3秒,但在後臺線程
您當前的情景: 「X」的方法將被你的時間每3名爲秒。 ABC是您在「X」方法中執行的任務。
你有什麼改變: 創建一個新的方法「Y」。以「Y」方法實施ABC任務。 在「X」的方法(評論中的X所有的代碼),並使用[self performSelector:@selector(Y) withObject:nil]
請注意,上述選擇工作,如果「Y」方法不帶任何參數。由於對Y仍然會在主線程中執行
這不會改變任何事情。如果你這樣做,你必須使用'performSelectorInBackground:withObject'。 – 2010-09-15 10:05:57
你錯了,當你調用performSelector,它會在一個新的線程創建的。 – Satyam 2010-09-15 10:10:38
不,它不會。只有當你使用'performSelector:onThread:withObject:waitUntilDone:'你可以指定選擇應執行的線程,但該線程必須已經存在。 – Toastor 2010-09-15 10:26:34