Chinaunix首页 | 论坛 | 博客
  • 博客访问: 503986
  • 博文数量: 54
  • 博客积分: 5016
  • 博客等级: 大校
  • 技术积分: 954
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-23 11:00
文章分类

全部博文(54)

文章存档

2009年(5)

2008年(49)

我的朋友

分类: LINUX

2008-05-07 11:08:35

两则程序:

1.

int Wave_Create(HWND hWnd)
{
 pthread_t thread1;

 CreateThreadForMainWindow (&thread1,NULL,(void*)&WaveMain,(void*)&hwnd);
}

 
2.
int Wave_Create(HWND hWnd)
{
 pthread_t thread1;
 
 HWND* phwnd;
 phwnd =malloc(sizeof(phwnd));
 if(NULL == phwnd)
  printf("malloc fail!\n");
 *phwnd=hWnd;
 CreateThreadForMainWindow (&thread1,NULL,(void*)&WaveMain,(void*)phwnd);
}
 
注:CreateThreadForMainWindow ()是minigui里创建线程的函数,同pthread_create().
 
这两则程序,第一个在PC上跑OK,在板子上出错;第二个在PC上和板子上均OK。
 
总结:线程参数传递,最好用malloc分配的空间或者静态变量,不然有可能子线程取的时候,空间已经释放了,程序运行不安全。
阅读(1539) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~