2
我用下面的代碼運行任務,GCD:如何檢查任務運行過程中出現
mTimerForImageUpload = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
if (mTimerForImageUpload) {
dispatch_source_set_timer(mTimerForImageUpload, dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * uploadCheckInterval), NSEC_PER_SEC * uploadCheckInterval, leeway);
dispatch_source_set_event_handler(mTimerForImageUpload, ^{
[self uploadData];
});
dispatch_resume(mTimerForImageUpload);
}
基本上我想在同一時間只能有一個運行uploadData
方法的實例。即如果任務仍在運行,我不想運行新線程,但要等到它完成。
任何想法如何做到這一點?
嗨大衛!基本上我正在尋找使用GCD手段的解決方案。你能用GCD的功能來提出一些建議嗎? – deimus 2012-07-15 15:06:55
好的,閱讀更新後的答案 – deimus 2012-07-15 15:08:15
您必須將狀態或操作存儲在其他位置(如NSMutableSet(就像我給出的例子))。 – 2012-07-15 15:08:45