,Symbian多线程,为什么崩溃了
求助,Symbian多线程,为什么崩溃了
程序运行起来后,报错:KERN-EXEC 0。
如果我把console->Write(_L("thread1 running"));注释掉之后,就没问题了。
为什么这样用会报错呢?
------解决方案--------------------
RCriticalSection iLock;
iLock.CreateLocal();//初始化锁
每次调用到console的地方加上
iLock.Wait();//锁定这个对象
//console->Dosomething;
iLock.Signal();//释放
- C/C++ code
TInt threadFunction(TAny *aPtr) { // points to iParameter TInt *i = (TInt *)aPtr; TBuf<32> buf; while (true) { console->Write(_L("thread1 running")); User::After(1000); } } LOCAL_C void MainL() { RThread thread; TInt i = 1; { thread.Create(_L("thread 1"), threadFunction, 4096, KMinHeapSize, 256 * KMinHeapSize, &i); thread.Resume(); } while (true) { console->Write(_L("main thread running\n")); User::After(1000); } }
程序运行起来后,报错:KERN-EXEC 0。
如果我把console->Write(_L("thread1 running"));注释掉之后,就没问题了。
为什么这样用会报错呢?
------解决方案--------------------
RCriticalSection iLock;
iLock.CreateLocal();//初始化锁
每次调用到console的地方加上
iLock.Wait();//锁定这个对象
//console->Dosomething;
iLock.Signal();//释放