在Cocoa中,我设置了两个NSThreads,一个生产者和一个消费者。 生产者将数据附加到NSMutableData,接收器从该数据打开NSInputStream并读取块。
生产者线程比消费者进程写得快很多,这没关系。但是生产者只生产有限数量的工作,然后退出。我希望消费者线程处理NSStreamEventEndEncountered事件。当NSInputStream来自NSMutableData时,我该如何发出信号?
我是否应该让生产者发送一系列带有神奇数字的字节,表示流的结束?
答案 0 :(得分:1)
生产者将数据附加到NSMutableData,接收器从该数据打开NSInputStream并读取块。
那不行。来自the -initWithData:
documentation:
复制
data
的内容。
意思是,它会复制当时数据对象中的任何内容,而不是在向其添加更多数据时跟随数据对象的内容。
(+inputStreamWithData:
同样如此。)
尝试使用pipe。