|
楼主 |
发表于 2009-4-30 15:51:45
|
显示全部楼层
好的,代码写的比较差,见笑了,麻烦版主耐心给看看。
Class CMyThread:public OpenThreads::Thread
{
public:
CMyThread (void);
~CMyThread (void);
virtual int Cancel();
virtual void run();
void run()
{
ReadData();
}
}
ReadData()
{ osg::proxyNode * m_pn =new osg::proxyNode ;
while(1)
{ sleep(200);
m_pn ->SetDataVaricance(...);
m_pn ->SetDataPath("...");
m_pn ->SetFileName(0,"xxx.osg");
SenceRoot->addchild(m_pn );
}
}
在View中的键盘响应中加入如下代码:
CMyThread *mythread = new CMyThread ;
CMyThread ::Init();
mythread ->run();
自己是按照VP中的相关多线程代码,改写的,但发现程序老是在执行while(1)的循环,且出现程序不响应,但在vp中这样就行,自己对OSG中的多线程机制尤其是多线程数据调度不是很明白,对OpenThreads::Thread的用法更是不熟悉,请版主赐教。 |
|