В моем приложении я запускаю сервер в фоновом режиме. Для этого я использую NSOperation
. (. Я использовал НОД раньше, но мне нужно, чтобы быть в состоянии остановить его, поэтому я перешел на NSOperation
, но я до сих пор не могу понять, каким образом)Сила остановки NSOperation или GCD?
Так по существу, мой NSOperation
подкласс выглядит следующим образом:
- (void)main {
server_main(var1, var2);
}
Так как это сервер, функция server_main
в основном не возвращается. Я также не могу контролировать реализацию этой функции.
Время от времени пользователь меняет настройки сервера. Когда это произойдет, я хотел бы остановить и перезапустить сервер. Если я правильно понял, мне нужно сделать что-то вроде if (self.isCancelled)
в подклассе NSOperation
, но поскольку он будет застревать в функции server_main
, я сомневаюсь, что он действительно сработает.
Так как я могу остановить сервер?
Большое спасибо!
Да, я понял ... Я знаю об этом, но проблема в том, что я почему-то не могу изменить 'server_main'. В противном случае я полностью это сделаю. – aforaudrey
@iBlue - Извините. Это перетаскивание, но для 'server_main' фактически требуется, чтобы один из этих двух методов был отменен. (Sigh.) Является ли 'server_main' чем-то, что вы можете заменить тем, что разрешает отмену? (например, некоторые фреймворки могут быть добавлены в виде библиотеки или могут быть скомпилированы исходным кодом как часть проекта, если у вас есть источник, который вы можете отредактировать) или вы застряли с ним, как есть? – Rob
Да, к сожалению, я застрял в этом, как есть ...><Спасибо. – aforaudrey