VC++ 线程问题
来源:互联网 发布:手机免流量软件 编辑:程序博客网 时间:2024/06/08 10:02
HANDLE CreateThread
(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程安全属性
DWORD dwStackSize, // 堆栈大小
LPTHREAD_START_ROUTINE lpStartAddress, // 线程函数
LPVOID lpParameter, //线程参数
DWORD dwCreationFlags, // 线程创建属性
LPDWORD lpThreadId // 线程ID
);
lpThreadAttributes:指向SECURITY_ATTRIBUTES型态的结构的指针。在Windows 98中忽略该参数。在Windows NT中,NULL使用默认安全性,不可以被子线程继承,否则需要定义一个结构体将它的bInheritHandle成员初始化为TRUE
dwStackSize,设置初始栈的大小,以字节为单位,如果为0,那么默认将使用与调用该函数的线程相同的栈空间大小。任何情况下,Windows根据需要动态延长堆栈的大小。
lpStartAddress,指向线程函数的指针,形式:@函数名,函数名称没有限制,但是必须以下列形式声明:
DWORD WINAPI ThreadProc (LPVOID lpParam) ,格式不正确将无法调用成功。
//也可以直接调用void类型
//但lpStartAddress要这样通过LPTHREAD_START_ROUTINE转换如:(LPTHREAD_START_ROUTINE)MyVoid
//然后在线程声明为:
void MyVoid()
{
return;
}
lpParameter:向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,为NULL。
dwCreationFlags :线程标志,可取值如下
(1)CREATE_SUSPENDED(0x00000004):创建一个挂起的线程,
(2)0:表示创建后立即激活。
(3)STACK_SIZE_PARAM_IS_A_RESERVATION(0x00010000):dwStackSize参数指定初始的保留堆栈的大小,否则,dwStackSize指定提交的大小。该标记值在Windows 2000/NT and Windows Me/98/95上不支持。
lpThreadId:保存新线程的id。
返回值:
函数成功,返回线程句柄;函数失败返回false。
若不想返回线程ID,设置值为NULL。
函数说明:
创建一个线程。
语法:
hThread = CreateThread (&security_attributes, dwStackSize, ThreadProc,pParam, dwFlags, &idThread) ;
使用上述创建一个线程,创建成功返回句柄值。出错则HANDLE xxx = INVALID_HANDLE_VALUE;
出现的问题::::error C2440: 'type cast' : cannot convert from '' to 'unsigned long (__stdcall *)(void *)'
VC++解决方案:hRecvThread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)CommRecvTread,this,0,&IDThread);
更重要的是:线程处理函数必须定义成static。。static DWORD CommRecvTread(LPVOID lparam);
具体见:::http://blog.csdn.net/yangguang0501/article/details/6096421
- VC++ 线程问题
- VC创建线程问题总结
- VC++关闭线程的问题
- 请教vc下线程问题???
- vc 线程
- 线程(vc)
- vc线程
- vc线程
- VC 线程
- 在VC线程使用时,UpdataData时报错的问题
- VC++多线程中线程之间的通信问题研究
- VC++工作者线程关闭的问题
- 线程间通讯--VC
- VC++ 线程池
- VC#与线程
- VC实现线程池
- VC实现线程池
- VC 线程间通信
- Qt 学习笔记 - QGridLayout::addWidget
- 宏定义
- Ubuntu: ImportError: No module named BeautifulSoup
- 与Excel有关的CRUD
- 数据结构之二叉搜索树c++ 简单版
- VC++ 线程问题
- 0328oracle
- Android 自己动手写ListView学习其原理 1 显示第一屏Item
- 解决导入.vdi文件时报“uuid is exists”错误
- linux性能分析工具之gprof
- 5-1 带构造函数的三角形类
- 3-38java的日子--序列化,反序列化
- Uva-10905-Children’s Game
- 第五周 项目1 -带参数的构造函数,默认值函数