随笔分类 - windows
摘要:为什么要用WSAAsynSelect? 服务端的IO模型,常见的是select、poll、epoll这种select模型,或是IOCP,AIO这种异步IO模型,这在服务器端无疑是合理的选择,那么客户端呢?用select或是AIO是否合理,或者是否有必要呢?考虑到客户端总是需要一个UI线程,如果需要用上面的解决方案,必然需要引入另外的线程来做这部分工作,线程之间的通信,同步资源,都是麻烦的东西。多线程的设计无疑使得程序变得复杂和难于调试,难道不能用单线程来实现整个客户端么?实际上是可以的,windows中提供的WSAAsynSelect就可以很方便的在一个线程中实现UI和异步IO的处理。WSAA
阅读全文
摘要:GUI线程: 当一个线程创建window或调用GDI函数,则系统自动建立消息队列。 这没有什么好说的,没有消息循环,窗口也不会有任何反应。 非GUI线程: 默认是不会建立消息队列的,调用GetMessage会强迫系统建立消息队列。 这里要注意写法,如果像下面这样写, 程序会挂死,因为新生成的线程无法保证 立即得到调用,所以子线程的消息队列没有建立,PostMessage直接就失败了,发的这条消息也丢失了。 根据MSDN的描述,PostThreadMessage的合理使用方法是:
阅读全文

浙公网安备 33010602011771号