CreateThreadpoolIo 函数小记
2014-03-11 18:23
756 查看
函数原型如下:
第一个参数表示要绑定到线程池内部IO完成端口的设备;有两点要注意。
第一点 还记得创建完成端口的函数么,它有两个功能,一是创建一个新的完成端口,二是将一个设备绑定到一个完成端口上面,而此函数并没有完成第二个功能,即,它并没有将第一个参数(即设备句柄)绑定到线程池内部IO完成端口上,它只是说,如果要将设备绑定到线程池内部的IO完成端口,就得以这样的形式来创建一个“对象”,这个“对象”里面包含着要绑定到线程池内部IO完成端口的设备;只有调用了下面的StartThreadpoolIo()函数后,才是将“对象”中的设备绑定到线程池内部IO完成端口上
第二点 还记得完成端口可以绑定多个设备么,所以,如果要将多个设备(多个异步SOCKET)绑定到线程池内部IO完成端口上面,就要多次调用这个函数来创建这种“对象”,“对象”中包含一个要绑定到线程池内部IO完成端口的设备
PTP_IO WINAPI CreateThreadpoolIo( _In_ HANDLE fl, _In_ PTP_WIN32_IO_CALLBACK pfnio, _Inout_opt_ PVOID pv, _In_opt_ PTP_CALLBACK_ENVIRON pcbe );
第一个参数表示要绑定到线程池内部IO完成端口的设备;有两点要注意。
第一点 还记得创建完成端口的函数么,它有两个功能,一是创建一个新的完成端口,二是将一个设备绑定到一个完成端口上面,而此函数并没有完成第二个功能,即,它并没有将第一个参数(即设备句柄)绑定到线程池内部IO完成端口上,它只是说,如果要将设备绑定到线程池内部的IO完成端口,就得以这样的形式来创建一个“对象”,这个“对象”里面包含着要绑定到线程池内部IO完成端口的设备;只有调用了下面的StartThreadpoolIo()函数后,才是将“对象”中的设备绑定到线程池内部IO完成端口上
第二点 还记得完成端口可以绑定多个设备么,所以,如果要将多个设备(多个异步SOCKET)绑定到线程池内部IO完成端口上面,就要多次调用这个函数来创建这种“对象”,“对象”中包含一个要绑定到线程池内部IO完成端口的设备
相关文章推荐
- Could not create pool connection. The DBMS driver exception was: Io 异常: Broken pipe
- linux中通过thread_create()函数成功后是不是线程就起来了呢?
- CreateRemoteThread函数实现远程注入6部曲
- CreateRemoteThread函数
- Cannot create PoolableConnectionFactory(Io 异常: The Network Adapter could not establish the connec
- CCThread(On iOS, should create autorelease pool when create a new thread)
- PsCreateSystemThread函数说明
- mysql can't create threads in threadpool
- Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connect
- Oracle连接错误Cannot create PoolableConnectionFactory (Io 异常: Bad packet type)
- 使用远程线程注入的三个函数CreateRemoteThread、NtCreateThreadEx、RtlCreateUserThread
- When should I create threads and when should I use thread pool to run work items asynchronously?
- 有关前面DLL和CreateRemoteThread函数综合说明
- [翻译]does NSThread create autoreleasepool automaticly now?
- RtlInitUnicodeString、IoCreateDevice、IoCreateSymbolicLink、IoDeleteDevice 四个 API 驱动函数的使用
- Exception in thread "main" java.io.IOException: Cannot run program "XX": CreateProcess error
- RT-Thread的rt_thread_create函数介绍
- How to create different types of thread pool in Java
- Cannot create PoolableConnectionFactory(Io 异常: The Network Adapter could not establish the connectio
- IoCreateSymbolicLink函数的作用以及符号链接、设备名称之间的关系