因为在AfxBeginThread中的线程执行函数里所用到的变量和函数都必须是全局或者是静态的,我不想这样用,请问各位高手是不是可以不用这个函数,而直接用SetEvent来触发另一个线程的启动。
解决方案 »
- CSplitterWnd分割的窗口在那里调整大小?
- 关于旋转控件的问题,请大家帮忙
- ado之recordset添加记录时如何处理自增字段和时间字段
- 关于app中添加类的问题
- 在win2k和winxp下如何访问I/O口,用什么函数?
- 多文档程序中如何设置文档窗口左上角的小图标?
- 能否推荐关于网络编程实例的好书
- 又一个关于动态链接库的问题
- VC insert into数据到SQL数据库,timestamp,uniqueidentifier(UUID)和decimal(23, 10)数据怎么初始化?
- 内存映射文件问题 ipc
- 请教:为什么我用了TrackPopupMenu显示弹出式菜单后鼠标“失效”了?
- vc版的人不会都和yanhuahui一样吧。
为什么?
class A
{
};
main()
{
A a
AfxBeginThread(run,&a)
}
UINT run(void* p)
{
A* pa = (A*)p;
//you can use a of the main()!
}
{
static int threadrun(void* p);
void Run(); //u want to call
};main()
{
A a
AfxBeginThread(A::threadrun,&a)
}UINT A::thread(void* p)
{
A* pa = (A*)p;
pa->Run(); //that's ok
}
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD
DWORD dwStackSize, // initial stack size
LPTHREAD_START_ROUTINE lpStartAddress, // thread function
LPVOID lpParameter, // thread argument
DWORD dwCreationFlags, // creation option
LPDWORD lpThreadId // thread identifier
);