我已经看到不同的片段展示了Put
一条返回unit
F# 的消息MailboxProcessor
。在某些情况下,仅Post
使用该方法,而在其他情况下使用PostAndAsyncReply
,一旦消息被处理,回复通道会立即回复。在做一些测试时,我发现等待回复的时间很长,所以除非你需要真正的回复,否则你应该使用Post
.
注意:我开始在另一个线程中提出这个问题,但认为将其作为一个完整的问题发布很有用。在另一个线程中,Tomas Petricek 提到回复通道可以使用等待机制来确保调用者延迟到Put
消息被处理。
是在消息排序方面使用PostAndAsyncReply
帮助,还是只是在处理第一条消息之前强制暂停?在性能方面Post
出现了正确的解决方案。那准确吗?
更新:
我只是想到了示例PostAndAsyncReply
中可能需要的原因:用于在队列已满时查找消息,因此您不希望在前一个完成之前再查找消息。BlockingQueueAgent
Scan
Get
Put
Get
Put