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

求助,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();//释放