读书人

怎么让线程可以调用类中的变量

发布时间: 2013-09-26 10:32:35 作者: rapoo

如何让线程可以调用类中的变量
由于写程序时 ,发现程序经常假死,所以考虑创建个线程,但是发现创建的线程无法用类中的变量


class Foo{

};
ThreadFunc(LPVoid lpParam)
{
Foo *f = (Foo *)lpParam;
}

Foo *f = new Foo;
CreateThread(NULL,0, ThreadFunc, f,0,NULL);

[解决办法]
“类中的变量”不存在于内存中。比如说,你告诉我人类的耳朵位于东经多少度北纬多少度?
必须指定一个对象,才能访问它的变量。例如,你必须指定是张三还是李四,才能说他的耳朵位于地球上什么经纬度。

既然有对象了,直接把该对象的指针传给线程就完事了,还有什么问题?
要访问多个变量?要访问多个对象?先把所有你要访问的东西的指针都放在一个专门的结构体里,然后把这个结构体的指针传给线程完事,还有什么问题?
[解决办法]
引用:
如果我想调用 类名为“data”中的变量
传参的时候该怎么写 ?


HANDLE hThread1;
hThread1=CreateThread(NULL,0,这个参数怎么写,NULL,0,NULL);

你创建线程的时候直接将变量作为线程函数的参数传递给线程不行吗?

读书人网 >C++

热点推荐