在可可中,我设置了两个NSThreads,一个生产者和一个消费者。
生产者将数据附加到NSMutableData,接收者从该数据打开NSInputStream并分块读取。

生产者线程的写入速度比消费者过程的写入速度快很多,这可以。但是生产者只生产有限数量的作品,然后退出。我想让使用者线程处理NSStreamEventEndEncountered事件。当NSInputStream来自NSMutableData时,我该如何发出信号?

我是否应该让制作方发送一系列带有神奇数字的字节来表示流的结尾?

最佳答案

生产者将数据附加到NSMutableData,接收者从该数据打开NSInputStream并分块读取。


那行不通。从the -initWithData: documentation


  data的内容被复制。


意思是,它将在那时复制出数据对象中的所有内容,而不会在您向其添加更多数据时跟随该数据对象的内容。

+inputStreamWithData:也是如此。)

请尝试使用pipe

关于objective-c - 如何在从NSMutableData读取的NSInputStream上发信号通知NSStreamEventEndEncountered,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/781448/

10-11 09:21