当前位置: 代码迷 >> Symbian >> ,Symbian多线程,为什么崩溃了
  详细解决方案

,Symbian多线程,为什么崩溃了

热度:2381   发布时间:2013-02-26 00:00:00.0
求助,Symbian多线程,为什么崩溃了
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();//释放