цикл выполнения gnustep

Кто-нибудь говорит, что функции расширения GNUstep NSRunLoop:

  • (void) addEvent: (void*) тип данных: (RunLoopEventType) тип наблюдателя: (id) наблюдатель forMode: (NSString*) режим;

этот метод работает?, и как настроить данные аргумента? Я установил канал для чтения описания файла, но, похоже, он не работает нормально. Очень сложно разобраться в вопросе, может кто подскажет?


person chengpei    schedule 21.12.2012    source источник
comment
NSPipe вместо дескриптора файла?   -  person 9dan    schedule 21.12.2012


Ответы (1)


Этот метод работает. Пожалуйста, покажите больше вашего кода.

например. для чтения [[NSRunLoop currentRunLoop] addEvent: (void*)anFd type: ET_RDESC watcher: anObj // должен реализовывать ReceiveEvent:type:extra:forMode: forMode: NSDefaultRunLoopMode]; // ртфм

person Fred Frith-MacDonald    schedule 22.12.2012
comment
Спасибо за ответ! и я кодирую как ваш код, мой дизайн таков: я использовал канал для отправки информации в другой поток. Я pipe_write сообщение, я хочу, чтобы другой поток мог прослушивать чтение канала, поэтому я могу обработать сообщение в потоке . поэтому я установил addEvent: pipe_read, но это не сработает, я не знаю причины. Должен ли я сделать что-то волшебное, чтобы функция addEvent: работала? - person chengpei; 24.12.2012
comment
Нет никакой магии, addEvent:.. просто добавляет дескриптор файла в системный опрос. Я все еще не уверен, что вы пытаетесь сделать здесь. Вы использовали NSThread? т.е.-detachNewThreadSelector:toTarget:withObject: ? Или использовать распределенный объект или выполнять селектор в основном потоке? Может быть, вы можете показать больше кода или минимальный тестовый пример, чтобы я мог получить более четкое представление о том, что вы делаете, как вы на самом деле запускаете цикл, как вы управляете циклами между потоками, даже как вы создаете поток и др. Вы также можете показать код в списке рассылки GNUstep. Они очень отзывчивы. - person Fred Frith-MacDonald; 24.12.2012