繁体   English   中英

F# MailboxProcessor.PostAndReply 是否阻止发布?

[英]F# Does MailboxProcessor.PostAndReply blocks Post?

假设我调用MailboxProcessor.PostAndReply ,由于任何原因,它可能会运行很长时间。 如果我在第一个调用尚未返回时从其他线程调用MailboxProcessor.Post会发生什么?

我的意思是,是的,当然,我可以编写一个测试来重现这种情况。 然而,在我开始重新发明自行车之前,我想知道是否有人已经知道这个问题的答案。

非常感谢!

简短的回答:不,它不会阻塞。

更长的版本:邮箱处理器使用常规Queue<T>而不是ConcurrentQueue<T> - 这意味着发布使用锁来排队,这意味着如果要从两个不同的线程调用一个帖子,一个会阻塞线程直到另一个调用返回 - 这会发生得非常快,但会阻塞。

tl;dr:发布不会阻止,因为发布时没有进行任何实际工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM