我是彩鸟问一个很彩的问题,关于线程的创建,快来拿分呀:)

bestfyj 2003-10-17 03:45:29
直奔主题
我刚开始学习多线程编程,以前有相当的c语言基础,可使用多线成就有些摸不着头脑了。
问题如下:
我用一个简单的例子来自己试验
DWORD WINAPI Func(LPVOID);
在主函数中创建线程
ThreadCreat(*,*,Func,*,*,*);
可编译时他老是报错 说 第3个参数不能类型转换

另外,Func在外部声明的位置不同,报的错误可能不同
我对此非常不解。
希望您能帮我解答这个疑惑。
可能您信手拈来的一两句,能解答我的大问题,感谢!
...全文
49 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
scatzr 2003-10-21
  • 打赏
  • 举报
回复
#include <windows.h>
#include <stdlib.h>

#include <stdio.h>
#include <string.h>


DWORD __stdcall BeginService(void *p)
{
for(int i;i<2000;i++)
{
_sleep(5);
Trace("int begin service thread\n");
}
}


void main()
{

CreateThread(0,0,BeginService,0,0,0);


for(;;);

}
wenyuzhang168 2003-10-17
  • 打赏
  • 举报
回复
用AfxBeginThread()创建辅助线程,它必须是一个全局变量.

UINT ThreadSocket(LPVOID pParam);

char* p;
AfxBeginThread(ThreadSocket, p);

sevencat 2003-10-17
  • 打赏
  • 举报
回复
afxbeginthread就是生成一个CThread类。
你可以直接从CThread类重载也可以。
yaoha2003 2003-10-17
  • 打赏
  • 举报
回复
用用AfxBeginThread()比较简单,用CreateThread则可以设置优先级
yintongshun 2003-10-17
  • 打赏
  • 举报
回复
用AfxBeginThread就行
lsl7909 2003-10-17
  • 打赏
  • 举报
回复
还是用AfxBeginThread(....)比较方便,只有一个参数呢
bestfyj 2003-10-17
  • 打赏
  • 举报
回复
哦,谢谢各位,试验中。。。
创建线程还有其他技巧吗?
larryvc 2003-10-17
  • 打赏
  • 举报
回复
或者用
HANDLE hComWatchThread; //辅助线程的全局函数(用来等待数据到达)
DWORD pThread;//线程接受ID

hComWatchThread=CreateThread((LPSECURITY_ATTRIBUTES) NULL,//安全属性
0,//初始化线程栈的大小,缺省为与主线程大小相同

CommProc, //线程的全局函数

0, //此处传入了主框架的句柄

0,

&pThread );

来创建线程,CommProc为线程的全局函数,很简单的哦!
flagfly 2003-10-17
  • 打赏
  • 举报
回复
用AfxBeginThread()吧,以下为例子:

UINT ThreadSocket(LPVOID pParam);

char* p;
AfxBeginThread(ThreadSocket, p);
yafizyh 2003-10-17
  • 打赏
  • 举报
回复
使用AfxBeginThread函数创建新线程,继续努力!

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧