libevent,windows和.NET编程
我尝试了很多开源软件,我注意到开源世界中有相当数量的服务器类型应用程序使用libevent来促进基于事件的处理,而不是产生多个线程来处理请求.
我也做了很多.NET编程(这是我的核心工作函数),我有兴趣了解libevent与.NET事件模型的关系. .NET中的事件是否相当于C程序的libevent?我是否应该尝试学习libevent并尝试在自定义.NET服务器应用程序中使用它,或者使用标准.NET事件模型基本相同?
.NET事件和libevent并不等同,尽管它们共享抽象概念.
.NET事件允许CLR组件之间的非确定性通信. In C#,组件是一个对象 – 事件是类成员.在其他语言中,like F#不需要对象.事件允许消费者订阅在源中的特定条件下发生的通知 – 单击按钮,下载完成,发生异常等..NET事件的一些特征: >它们与底层操作系统无关 libevent允许OS和消费者之间的非确定性,异步通信.这可能与.NET事件类似,因为它们都反转控制,但机制却截然不同. > libevent使用特定于操作系统的非阻塞I / O(/dev/poll,kqueue,epoll)来提高性能.您的结果将根据您使用的操作系统和机制而有所不同.
如果你这样做是为了好玩,当然.如果你是为了工作而做的,可能不是. libevent声称其在* nix系统上的最大性能提升. Windows使用不同的网络范例. libevent开发人员在版本2中是addressing these differences,但2.0.5仍然是测试版. 此外,.NET还提供了自己的非阻塞I / O库including asynchronous sockets. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – MSB90错误MSB3086,与TeamCity
- 新的Windows防火墙规则会影响当前打开的连接吗?
- windows-server-2008 – 机器启动组策略是如何处理的以及需
- .net – 如何在Windows服务上捕获未处理的异常?
- windows – 为什么要参加Tech.Ed?
- windows-runtime – 如何确定GridView中哪些项目在当前滚动
- .net – 有没有办法在Windows控制台中编写希伯来语?
- 调试 – 同意Microsoft Symbol Server对话框
- 值为NULL的列是否会影响Microsoft SQL Server的性能?
- 如何在Microsoft Excel中打开以空格分隔的文件?