我想做一个收听 imap 邮箱的电子邮件监听器。我的基本想法是继续使用 imap 客户端轮询服务器,我将如何在 f# 中创建这种循环以及如何将程序变成可以干净地启动和停止的服务。此外,有没有比每隔几秒钟轮询一次 imap 服务器更好的方法来监听 imap 服务器?
编辑:
我发现这个问题回答了我关于创建服务的问题: 编写轮询 Windows 服务。但是问题仍然存在,这是收听 IMAP 邮箱的正确方法吗?会不会有什么可能的问题?
编辑 2
我一直在查看在 C# 中使用事件处理程序的 S22.Imap 但是我不确定如何在 F# 中实现它,基本上是这一行:
// We want to be informed when new messages arrive
Client.NewMessage += new EventHandler<IdleMessageEventArgs>(OnNewMessage);
我想这就是程序保持活动状态的方式,它是否坐在这条线上等待事件?
代码的作者也把这个放在下面,我不太明白:
// Put calling thread to sleep. This is just so the example program does
// not immediately exit.
System.Threading.Thread.Sleep(60000);
有人可以向我解释如何在 F# 中实现它吗?完整示例可在此处获得。
编辑 3
不知道为什么这个问题被关闭了,也许编辑 2 的最后一句话没有被阅读。所以我的问题是:
有人可以向我解释如何在 F# 中实现事件处理吗?我在谷歌上找不到任何不适合 GUI 应用程序的东西。如何将上面的示例 C# 代码转换为 F# 中的内容?
任何对否决票的解释也将不胜感激,我最初的问题得到了一些人的部分回答,我为自己找到了一些答案,但还没有完全回答,这个问题只是演变成稍微不同的东西。