等待多个异步socket,用select和用WSAEventSelect+WSAEnumNetworkEvents,有什么不同?该如何解决

等待多个异步socket,用select和用WSAEventSelect+WSAEnumNetworkEvents,有什么不同?
这两种方式,有什么根本区别么?
似乎WSAEventSelect+WSAEnumNetworkEvents,和select模型,效果是一样的啊。

到底有什么不同么?

高手解释下哈!

------解决方案--------------------
对于管理多个socket,WSAEventSelect更方便
------解决方案--------------------
都是非阻塞IO模型。区别MSDN里说的很清楚:
The WSAEventSelect function is used to specify an event object, hEventObject, to be associated with the selected FD_XXX network events, lNetworkEvents. The socket for which an event object is specified is identified by the s parameter. The event object is set when any of the nominated network events occur.
----------------------------------
The select function determines the status of one or more sockets, waiting if necessary, to perform synchronous I/O. 
The select function returns the total number of socket handles that are ready and contained in the fd_set structures, zero if the time limit expired, or SOCKET_ERROR if an error occurred 

------解决方案--------------------
据传windows下的select是为了兼容用其它I/O模型模拟出来的
所以性能较差
------解决方案--------------------
探讨
也就是说,select模型只能是同步的,而WSAEventSelect完全是异步的。
对吗?

------解决方案--------------------
建议看 幽默讲解WinSock I/O模型

老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 
这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~ 

一:select模型 

老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信~~~~~ 
在这种情况下,"下楼检查信箱"然后回到楼上耽误了老陈太多的时间,以至于老陈无法做其他工作。
select模型和老陈的这种情况非常相似:周而复始地去检查......如果有数据......接收/发送.......
使用线程来select应该是通用的做法: 

三:WSAEventSelect模型 

后来,微软的信箱非常畅销,购买微软信箱的人以百万计数......以至于盖茨每天24小时给客户打电话,累得腰酸背痛,喝蚁力神都不好使~~~~~~
微软改进了他们的信箱:在客户的家中添加一个附加装置,这个装置会监视客户的信箱,每当新的信件来临,此装置会发出"新信件到达"声,提醒老陈去收信。盖茨终于可以睡觉了。