0

在 Cocoa 中,我设置了两个 NSThread,一个生产者和一个消费者。生产者将数据附加到 NSMutableData,接收者从该数据中打开一个 NSInputStream 并以块的形式读取。

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

我是否应该让生产者发送一系列带有表示流结束的神奇数字的字节?

4

1 回答 1

1

生产者将数据附加到 NSMutableData,接收者从该数据中打开一个 NSInputStream 并以块的形式读取。

那是行不通的。从文档-initWithData:

的内容data被复制。

意思是,它将复制出当时数据对象中的任何内容,而不是在您向其添加更多数据时遵循数据对象的内容。

(同样适用于+inputStreamWithData:。)

尝试使用管道

于 2009-04-23T13:06:47.773 回答