2011-03-07 88 views
0

我有一個函數foo()調用後臺線程上的功能欄012(g)在調用另一個函數之前做一些事情。 bar()所做的全部都在後臺。與此同時,我正在展示ActivityIndi​​cator。一旦我的bar()函數返回,我正在調用一個函數,它會停止MainThread上的stopActivityIndi​​cator。執行在後臺和主線程ios

現在,我想在調用stopActivityIndi​​cator()之前調用MainThread中的另一個函數() 我該怎麼做? 可以在*之前放置另一個[self performSelectorOnMainThread:@selector(functionIWantToCall:)withObject:nil wailUntilDone:YES]; 嗎?

回答

2

你可以派遣一個塊主線程上運行,把你需要成塊的任何代碼:

[[NSOperationQueue mainQueue] addOperationWithBlock:^ { 

    // Code here 
    NSLog(@"This is the main thread"); 

}]; 

使用你的代碼,這會成爲:

bar() 
{ 
    bar1(); 

    [[NSOperationQueue mainQueue] addOperationWithBlock:^ { 
     [stopActivityIndidator]; 
     [functionIWant]; 
    }]; 
} 
相關問題