0

我非常使用(多)生产者-队列-消费者设计模式,但我不知道如何获得操作的结果。

我有 3 个生产者 P1、P2、P3,它们产生一条消息 IMessage;此消息在同步队列中发送,并由 Cosumer 进行详细说明。

消费者 C 如何告诉生产者(P1 或 P2 或 P3)请求已完成并给出结果?

4

1 回答 1

1

一种异步方式是让消费者在完成后将消息排队返回其生产者。该消息可以包含结果成员,(和/或在消息处理期间可能已引发的任何异常对象或错误消息)。另一种可能性是生产者只是等待一些也与消息一起排队的同步对象。完成后,消费者会发出信号。这两种方案都可以由生产者使用“OnCompletion(Message *thisMessage)”函数/事件/委托加载消息来支持,消费者在处理消息时调用该函数/事件/委托。

于 2013-02-05T16:24:57.890 回答