Как остановить вызов функции, если ее выполнение в Object c занимает более 3 секунд - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть функция, для выполнения которой требуется от 3 до 30 секунд, в зависимости от некоторых вычислений.

Я хочу прекратить, если мой вызов функции занимает более 5 секунд.как это сделать в Задаче С.

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Вы должны выполнить команду в отдельном потоке (например, с executeSelectorInBackground или с NSThread), подождать 5 секунд (снова, с помощью методов unix sleep или NSThread) и затем (в зависимости от того, что делается в потоке выполнения):

  • установить для некоторого поля в классе значение «terminate» и часто проверять это поле в «длинной» функции
  • отменить операцию ввода-вывода, если есть блок
  • отменить тему (вы можете прочитать об этом здесь: как остановить nsthread )
0 голосов
/ 29 декабря 2011

Вы можете использовать таймер и поставить условие, например, если таймер превышает 5 секунд, ничего не делать.

...