объединить boost :: thread (или любой другой) в основной поток iphone? - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть основанный на бусте поток (назовем его T-thread), отдельный от основного потока iphone.
Этот пользовательский T-поток общается с другими потоками, используя пользовательские объекты сообщений.

Дело в том, что это основной поток iphone (поток пользовательского интерфейса), и этот T-поток не нужно связывать друг с другом. А наличие отдельных нитей делает мою жизнь несчастной из-за необходимости думать о безопасности нитей.

Я бы хотел объединить основной поток и T-поток, но не могу понять основную стратегию или не уверен, что это можно сделать.

Мой пользовательский класс потока (использующий boost :: thread) имеет 4 метода.

  1. нить петли

  2. PushMessage (принимает пользовательское сообщение класса и помещает в очередь)

  3. PopMessage (выводит сообщение из очереди)

  4. Отправка (Фактическая работа)

В каком-то смысле мне нужно включить вышеуказанные 4 метода в основной поток.
Любое предложение будет оценено. Спасибо.

1 Ответ

0 голосов
/ 05 ноября 2010

ммм, может быть, проще, чем я беспокоюсь.

PerformSelectorOnMainThread может эмулировать push / pop.
Просто нужно сделать статический объект для выполнения «селектора», чтобы основной цикл мог постоянно обращаться к объекту.

...