2012年12月25日

获取线程结束代码(Exit Code)

摘要: 线程结束代码可以调用GetExitCodeThread()(并给予CreateThread所获得的线程handle作为参数)而得知:BOOL GetExitCodeThread( HANDLE hThread, LPDWORD lpExitCode);hThread:由CreateThread()传回的线程handlelpExitCode:指向一个DWORD,用于接收结束代码(exit code)如果成功传回TRUE,否则传回FALSE。如果失败,可以调用GetLastError()找出原因。如果线程已结束,那么线程的结束代码会被放在lpExitCode参数中带回来。如果线程尚未结束,lp.. 阅读全文

posted @ 2012-12-25 18:22 zhuyf87 阅读(8293) 评论(0) 推荐(0) 编辑

等待一个线程的结束

摘要: Win32 提供WaitForSingleObject()函数,其第一个参数是一个核心对象(如线程)的 handle。为方便讨论,把等待线程称为线程#1,把被等待线程称为线程#2。调用 WaitForSingleObject()并放置一个“线程句柄”作为参数,将使线程#1开始睡眠,直到线程#2结束。像Sleep()函数一样,WaitForSingleObject()也有一个参数用来指定最长的等待时间。DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds);hHandle:等待对象的 handle(代表一个核心... 阅读全文

posted @ 2012-12-25 18:09 zhuyf87 阅读(11826) 评论(0) 推荐(0) 编辑

Winsock IO模式

摘要: Winsock主要有三种IO操作模式:阻塞、非阻塞、重叠IO。默认情况下Winsock都是建立阻塞的socket,为了创建非阻塞socket,需要使用ioctlsocket的FIONBIO命令把socket设置为非阻塞。如果要使用重叠IO功能,需要在创建socket时指定重叠IO属性。1. 阻塞IO任何IO操作只有在完成后才能返回,阻塞函数在完成其指定的任务之前不允许程序执行另外的语句。阻塞IO编程简单,但不是最有效的编程方式。2. 非阻塞IO当执行一个IO操作时,如果此IO操作不会引起阻塞,函数将立即执行,并返回给调用者。如果此IO操作会引起阻塞,则函数返回错误码WSAEWOULDBLOCK 阅读全文

posted @ 2012-12-25 15:22 zhuyf87 阅读(627) 评论(0) 推荐(1) 编辑

导航