如果没有立即调用 CDirScan 函数 NextL,则引发“Main Panic KERN-EXEC 0”
f1() - 在活动对象中调用
iDirScan = CDirScan::NewLC(aFs);
iDirScan->SetScanDataL(aPath,
KEntryAttDir|KEntryAttMatchExclusive,
ESortNone, CDirScan::EScanDownTree);
//wait for some asynchronous event
f2() - 在一些异步事件之后在同一个活动对象中调用
CDir* dir = NULL;
TRAPD(error, iDirScan->NextL(dir)); -->> "Main Panic KERN-EXEC 0"
如果在等待某个异步事件之前调用 iDirScan->NextL(),则一切正常。
为什么 CdirScan 变量失去了它的有效性?注意异步事件无关,它可以是一个简单的虚拟定时器。