2014-01-24 42 views
-1

我有一個模型類獲取數據庫信息,爲此我在我的數據庫類中有getInfo()方法。在我的主類我有表視圖來顯示數據在表視圖我想調用這個數據庫類的方法增益和再次,如果數據是沒有在數據庫中我從服務器發出一個請求從同一數據庫的方法。爲了防止視圖阻止,我打電話給performselectorInBackgroundThread()。事情做得很好,但我的問題是,我不是每個請求的不同的後臺線程。好嗎?。我想要創建一個可以一次又一次使用的單個backgoundthread方法。請用一些代碼指導我。謝謝如何使用一次又一次調用的單個backgroundthread方法

回答

0

當然使用GCD!

創建一個串行調度隊列

dispatch_queue_t _queue ; 
_queue = dispatch_queue_create("Queue.database", DISPATCH_QUEUE_SERIAL); 

,當你想要做數據庫的工作,像這樣做,一個例子查詢。

- (void)asyncQueryUserId:(NSString *)userId completeBlock:(void (^)(NSArray *))block 
{ 
    dispatch_sync(_queue, ^{ 
     // data base work 
     NSArray * users = queryDB(userId) ; 
     // after do the work and get the result 
     // you may want the result to continue your logic 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      block(users) ; 
     }) ; 
    }) ; 
} 

更多GCD

相關問題