2012-12-21 34 views
0

有誰知道是GNUstep的NSRunLoop擴展功能:GNUstep的runloop

  • (無效)的addEvent:(void *的)數據 類型:(RunLoopEventType)型 守望者:(ID)守望 forMode:(的NSString * )模式;

這個方法工作嗎?以及如何設置參數數據?我設置了一個管道來讀取文件描述,但它似乎無法正常工作。真的很難弄清楚這個問題,誰能幫助我?

+1

NSPipe而不是文件描述符? – 9dan

回答

0

此方法有效。請顯示更多你的代碼。

例如。對於閱讀, [[NSRunLoop currentRunLoop] addEvent:(void *)anFd type:ET_RDESC watcher:anObj // must implement receivedEvent:type:extra:forMode: forMode:NSDefaultRunLoopMode]; // rtfm

+0

感謝您的回覆!和我的代碼就像你的代碼,我的設計是:我用管道將信息發佈到另一個線程。我pipe_write一條消息,我想另一個線程可以聽管道讀取,所以我可以處理線程上的消息。所以我設置addEvent:pipe_read,但它不能工作,我不知道原因。我應該做一些神奇的事情,使addEvent:函數工作? – chengpei

+0

沒有魔法,addEvent:..只是將文件描述符添加到系統輪詢。我仍然不確定你在這裏做什麼。你用過NSThread嗎? ie.-detachNewThreadSelector:toTarget:withObject:?或者使用分佈式對象或在主線程上執行選擇器?也許你可以展示更多的代碼或最小的測試用例,這樣我可以更清楚地瞭解你在做什麼,你如何實際運行循環,如何管理線程之間的循環,甚至是如何創建線程等。您還可以將代碼顯示在GNUstep郵件列表中。他們非常敏感。 –