在F#中谁负责消息队列?

时间:2011-03-14 23:35:33

标签: f#

在F#中,如果我做类似的事情 let form = new Form(Text =“MyForm”) 并在FSI中运行,表单将正常显示和更新,甚至收到消息。但是,谁在抽取消息队列?此处没有Application.Run调用。我有点困惑。

2 个答案:

答案 0 :(得分:16)

正如ildjarn所说,F#Interactive实现了自己的消息循环。有趣的是,消息循环在F#Interactive中没有硬编码,因此您可以更改它。这非常有用,因为默认的是基于Windows窗体,但是您可能还想使用其他GUI框架。

为此,您需要实现IEventLoop接口,然后将您的实例分配给fsi.EventLoop属性。有关更多信息,请参阅:

答案 1 :(得分:3)

由于这个原因,FSI有自己的消息泵。