Как запустить CFSocket в фоновом потоке для более точного времени пинга? - PullRequest
2 голосов
/ 13 февраля 2011

Фон ...

Я изменяю пример Apple SimplePing , чтобы сделать пинг ICMP для приложения iPhone.Код оборачивает собственный сокет в объект CFSocket, определяющий обратный вызов чтения, а затем добавляет его в качестве источника цикла выполнения в главном потоке.Когда пакет отправляется в сокет, для обратного вызова вызывается обратный вызов, проверка содержимого, обновление пользовательского интерфейса и т. Д.

Вопрос ...

Что будет лучшимподход для перемещения этой обработки в фоновый поток, чтобы время пинга было как можно более точным?Мне нужно измерить точное время между вызовом метода сокета «sendto» и вызовом обратного вызова без прерывания.

Любые примеры или псевдокод были бы чрезвычайно полезны.Я много читал о многопоточности в Какао (NSThread против NSOperation, NSRunLoop и т. Д.), Но до сих пор не могу собрать все это вместе.

Спасибо

1 Ответ

0 голосов
/ 13 февраля 2011

Нужно ли поддерживать iOS 3.x? Если нет, вы можете изучить использование Grand Central Dispatch; в этом случае вы указали бы сокет в качестве источника для очереди отправки и присвоили ему наивысший приоритет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...