首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F#是MailboxProcessor.PostAndReply块邮政吗?

F#是MailboxProcessor.PostAndReply块邮政吗?
EN

Stack Overflow用户
提问于 2020-05-22 00:04:51
回答 1查看 49关注 0票数 0

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

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

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-22 04:24:38

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

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

tl;dr: Post不阻塞,因为在发布方面没有实际的工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61945746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档