免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5055 | 回复: 2
打印 上一主题 下一主题

请问: 如何在一个类中创建线程? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-19 13:30 |只看该作者 |倒序浏览

  1. class th {                                                                     
  2.         void *thrd_func(void *arg);                                             
  3.         void create_func(void);                                                
  4. };                                                                              
  5.                                                                                 
  6. void t(void) {                                                                  
  7.         pthread_t a_thread;                                                     
  8.         pthread_create(&a_thread, NULL, thrd_func, NULL);                       
  9. }            
复制代码
                                             
                                                                                
这时候传递给pthread_create的第三个参数thrd_func是void*(th::*)(void*),           
而不是void*(*)(void*)类型的,又不能强制转换                                      
                                                                                
编译的时候会出错:                                                               
thread.cc:25: no matches converting function `thread' to type `void*(*)(void*)'
thread.cc:16: candidates are: void* th::thread(void*)                           
                                                                                
请问各位,这个问题要怎么解决?                                                   
谢谢!!!!!

论坛徽章:
0
2 [报告]
发表于 2003-03-19 13:40 |只看该作者

请问: 如何在一个类中创建线程?

你的线程函数是不是类函数
并且不是类的静态成员函数


因为在类没有声明对象前这个类是不存在的
所以不可以使用类非静态成员函数作为线程函数或在其它地方使用它们


你可以声明成静态成员函数或是不在类中声明这个函数

论坛徽章:
0
3 [报告]
发表于 2003-03-19 13:53 |只看该作者

请问: 如何在一个类中创建线程?

多谢版主!

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP