У меня есть приложение, в котором я периодически вызываю метод в фоновом режиме.Я реализовал это, выполнив следующие шаги:
- создал фоновый поток,
- вызвал соответствующий метод в созданном потоке,
- вызвал метод сна в потоке,и
- снова вызвал ранее вызванный метод.
Ниже приведен код, который я использовал:
- (void) applicationDidFinishLaunching:(NSNotification *)notification
[NSApplication detachDrawingThread:@selector(refreshUserIdPassword) toTarget:self withObject:nil];
}
-(void)refreshUserIdPassword
{
[self getAllUserIdsPasswordsContinousely];
[NSThread sleepForTimeInterval:180];
[self refreshUserIdPassword];
}
Я прочитал, что NSThread - не лучший способдля выполнения фоновой задачи, и в какао предусмотрены другие классы, такие как - NSOperationQueue и GCD, которые должны быть предпочтительнее, чем NSThread, для выполнения асинхронной задачи.Поэтому я пытаюсь реализовать указанную выше функциональность, используя альтернативные классы.
Проблема в том, что - хотя я могу выполнить асинхронную задачу, используя эти классы, Я не могу выполнить повторяющиесязадание (как в моем случае) с использованием этих классов .
Может ли кто-нибудь пролить некоторый свет на это и направить меня в правильном направлении?