PostQueuedCompletionStatus
2015-12-08 14:16
429 查看
PostQueuedCompletionStatus函数,向每个工作者线程都发送—个特殊的完成数据包。该函数会指示每个线程都“立即结束并退出”.下面是PostQueuedCompletionStatus函数的定义:
其中,CompletionPort参数指定想向其发送一个完成数据包的完成端口对象。而就dwNumberOfBytesTransferred,dwCompletionKey和lpOverlapped这三个参数来说.每—个都允许我们指定—个值,直接传递给GetQueuedCompletionStatus函数中对应的参数。这样—来。—个工作者线程收到传递过来的三个GetQueuedCompletionStatus函数参数后,便可根据由这三个参数的某一个设置的特殊值,决定何时应该退出。例如,可用dwCompletionPort参数传递0值,而—个工作者线程会将其解释成中止指令。一旦所有工作者线程都已关闭,便可使用CloseHandle函数,关闭完成端口。最终安全退出程序。
PostQueuedCompletionStatus函数提供了一种方式来与线程池中的所有线程进行通信。如,当用户终止服务应用程序时,我们想要所有线程都完全利索地退出。但是如果各线程还在等待完成端口而又没有已完成的I/O 请求,那么它们将无法被唤醒。
通过为线程池中的每个线程都调用一次PostQueuedCompletionStatus,我们可以将它们都唤醒。每个线程会对GetQueuedCompletionStatus的返回值进行检查,如果发现应用程序正在终止,那么它们就可以进行清理工作并正常地退出。
原文链接:/article/8603916.html
参考资料:http://www.360doc.com/content/13/1111/09/12282510_328298932.shtml
BOOL PostQueuedCompletionStatus( HANDLE CompletlonPort, DW0RD dwNumberOfBytesTrlansferred, DWORD dwCompletlonKey, LPOVERLAPPED lpoverlapped, );
其中,CompletionPort参数指定想向其发送一个完成数据包的完成端口对象。而就dwNumberOfBytesTransferred,dwCompletionKey和lpOverlapped这三个参数来说.每—个都允许我们指定—个值,直接传递给GetQueuedCompletionStatus函数中对应的参数。这样—来。—个工作者线程收到传递过来的三个GetQueuedCompletionStatus函数参数后,便可根据由这三个参数的某一个设置的特殊值,决定何时应该退出。例如,可用dwCompletionPort参数传递0值,而—个工作者线程会将其解释成中止指令。一旦所有工作者线程都已关闭,便可使用CloseHandle函数,关闭完成端口。最终安全退出程序。
PostQueuedCompletionStatus函数提供了一种方式来与线程池中的所有线程进行通信。如,当用户终止服务应用程序时,我们想要所有线程都完全利索地退出。但是如果各线程还在等待完成端口而又没有已完成的I/O 请求,那么它们将无法被唤醒。
通过为线程池中的每个线程都调用一次PostQueuedCompletionStatus,我们可以将它们都唤醒。每个线程会对GetQueuedCompletionStatus的返回值进行检查,如果发现应用程序正在终止,那么它们就可以进行清理工作并正常地退出。
原文链接:/article/8603916.html
参考资料:http://www.360doc.com/content/13/1111/09/12282510_328298932.shtml
相关文章推荐
- IOS详解TableView——性能优化及手工绘制UITableViewCell
- UI基础学习之(九):UISlider
- [[UIScreen mainScreen] bounds] 得到的大小跟什么有关系?
- UI基础学习之(八):UISegmentedControl
- UI基础学习之(七):UIViewController
- 【译】使用UIKit进行面向对象的编程
- UI基础学习之(六):程序的启动过程
- UIView
- Arduino - Tiny RTC 12C 时钟模块
- UI基础学习之(五):UIButton
- easyui datagrid getChecked只能获取一行的问题
- UI基础学习之(四):UITextFiled Delegate
- UIViewController的生命周期(图解)
- UESTC-1259 昊昊爱运动 II
- 猫学习IOS(三)UI纯代码UI——图片浏览器
- UIScrollview与Autolayout的那点事
- 设置键盘只能输入数字( phoneNumTextField.keyboardType = UIKeyboardTypeNumberPad;)
- UITableView滑动动画+FPSLabel
- @UIColor colorWithPatternImage方法
- Java Base —— GUI