初次使用Symbian线程,有几个问题:
1、在console中一样的代码,在GUI中没有成功:
RThread thd;
User::LeaveIfError(thd.Create(_L("GIThread"),GetImages,KDefaultStackSize,NULL,NULL));
thd.Resume();
TInt CMyController::GetImages(TAny*)
{
for(int i=0;i<KBitmapsNum;i++)
{
User::After(300000);
}
return 0;
}
错误信息:
'RThread::Create(const TDesC16 &, int (*)(void *), int, int, int, void *, TOwnerType)' (non-static)
'RThread::Create(const TDesC16 &, int (*)(void *), int, RHeap *, void *, TOwnerType)' (non-static)
'RThread::Create(const TDesC16 &, int (*)(void *), int, void *, RLibrary *, RHeap *, int, int, TOwnerType)' (non-static)
function call '[RThread].Create(TPtrC16, int (CMonitorController::*)(void *), {lval} const int, int, int)' does not match
2、Camera API中有个ViewFinder取景接口,用这个接口,我的主线程中(原来我是没有使用多线程做的)能一直获取当前帧的信息:CFbsBitmap类型的iBitmap;
现在问题是:
a.我想在自己创建的线程(想实现在同一个对象中)中,同样获取用主线程中的iBitmap的变量,是否可以?
b.因为iBitmap这个变量的值是一直变化的,我想在线程中定时取帧,是不是可以用User::After来实现定时?
问题解决了可以另外加分,谁做过的麻烦看一下,先谢了;
------解决方案--------------------------------------------------------
a.可以
b.可以
------解决方案--------------------------------------------------------
TInt CMyController::GetImages(TAny*) 这个函数有问题 必须用静态或全局函数