CreateThread(...)传入多个参数

MSDN中CreateThread原型:
  HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  DWORD dwStackSize,
  LPTHREAD_START_ROUTINE lpStartAddress,
  LPVOID lpParameter,
  DWORD dwCreationFlags,
  LPDWORD lpThreadId);

lpThreadAttributes:指向SECURITY_ATTRIBUTES型态的结构的指针。在Windows 98中忽

略该参数。在Windows NT中,它被设为NULL,表示使用缺省值。
  dwStackSize,线程堆栈大小,一般=0,在任何情况下,Windows根据需要动态延长堆

栈的大小。
  lpStartAddress,指向线程函数的指针,形式:@函数名,函数名称没有限制,但是

必须以下列形式声明:
  DWORD WINAPI ThreadProc (LPVOID lpParam) ,格式不正确将无法调用成功。
  lpParameter:向线程函数传递的参数,是一个指向结构的指针,不需传递参数时,

为NULL。
  dwCreationFlags :线程标志,可取值如下
  CREATE_SUSPENDED: 创建一个挂起的线程
  dwCreationFlags :0 表示创建后立即激活。
  lpThreadId:保存新线程的id。
  返回值:
  函数成功,返回线程句柄;函数失败返回false。
  函数说明:
  创建一个线程。

例子:
class    CThreadParam 
public: 
                     IVMManager    *m_pVMManager1; 
                     CString    m_strExtNum; 
                     //要多少参数就有多少参数 
}; 
CThreadParam    *pParam    =    new    CThreadParam; 
pParam-> m_pVMManager1=...; 
... 
DWORD    dwThreadId; 
CreateThread(    NULL,0,ThreadFunc,pParam,0,&dwThreadId); 

DWORD    WINAPI    CConnectDlg::ThreadFunc(    LPVOID    lpParam    ) 
//运行线程 
//强制指针类型转换 
(CThreadParam*)pMyParam    =    (CThreadParam*)lpParam; 
// 
//pMyParam-> m_pVMManager1 
//pMyParam-> m_strExtNum 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值