线程函数

转载 2007年09月24日 10:25:00
 
在启动一个线程之前,必须为线程编写一个全局的线程函数,这个线程函数接受一个32位的LPVOID作为参数,返回一个UINT
一般来说,C++的类成员函数不能作为线程函数。这是因为在类中定义的成员函数,编译器会给其加上this指针。
如果一定要以类成员函数作为线程函数,通常有如下解决方案:
1)将该成员函数声明为static类型,去掉this指针;
将成员函数声明为静态虽然可以解决作为线程函数的问题,但是它带来了新的问题,那就是static成员函数只能访问static成员。解决此问题的一种途径是可以在调用类静态成员函数(线程函数)时将this指针作为参数传入,并在该线程函数中用强制类型转换将this转换成指向该类的指针,通过该指针访问非静态成员。
2)不定义类成员函数为线程函数,而将线程函数定义为类的友元函数。这样,线程函数也可以有类成员函数同等的权限;
3)可以对非静态成员函数实现回调,并访问非静态成员。
 
详细内容参照:深入浅出Win32多线程程序设计之线程控制
 

相关文章推荐

VC++ 回调函数和线程的程序例子

  • 2011年08月21日 19:22
  • 46KB
  • 下载

API之进程和线程函数

  • 2012年11月13日 22:57
  • 8KB
  • 下载

遍历创建进程、创建线程、加载模块的回调函数

今天我们首先来看一下最简单的,关于遍历PspCreateProcessNotifyRoutine数组,PspLoadImageNotifyRoutine也同理 这两个数组保存了两组函数地址,它们...
  • kingswb
  • kingswb
  • 2016年05月18日 21:58
  • 755

android JNI层线程回调Java函数

今天,简单讲讲android的jni如何使用jni回调java函数。 之前,我写了部分jni的博客,讲的都是如何从android的java代码调用jni的函数。最近,需要做一个新的功能,在jni的...

线程 poll函数

  • 2015年01月04日 17:02
  • 10KB
  • 下载

线程函数秘籍

  • 2013年05月23日 20:58
  • 17KB
  • 下载

线程函数(创建 取消 等待)

1.创建线程创建线程的函数定义如下:#include int pthread_create(pthread_t  *restrict  thread ,const  pthread_attr_t  ...
  • Akun6
  • Akun6
  • 2011年04月06日 11:32
  • 3095
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:线程函数
举报原因:
原因补充:

(最多只允许输入30个字)