Symbian中的线程终止

时间:2009-08-24 17:45:28

标签: symbian

我对Symbian中的Thread Termination的定义感到有点沮丧。如果我错了,请纠正我。 Symbian OS中的线程可以通过4种不同的方式终结它们的生命:

  1. 当线程功能正常退出时;
  2. 为当前线程调用User :: Exit()时;
  3. 当线程通过调用RThread :: Kill()或RThread :: Terminate()强制死亡时;
  4. 当User :: Panic
  5. 在线程上引发恐慌时

    我的问题是:这四种情况中的哪一种对应于'线程终止'?

    PS:我在探索Symbian文档中的“关键线程”定义时提出了这个问题。也许这extract可能会有所帮助。

1 个答案:

答案 0 :(得分:2)

所有这些。 SDK documentation完全指定了它:

  

线程的死亡(和任何   随后的通知等)是   实际上只是一个迹象   线程永远不会再执行了   码;它不保证   操作系统尚未完成   删除线程。

现在,如果您正在检查RThread::ExitType,您将找到以下信息:

  

EExitKill线程或进程因终止而终止,即已在Kill()RThread句柄上调用RProcess。或者线程因调用User::Exit()而结束。

     

EExitTerminate线程或进程因终止而终止,即已在Terminate()RThread句柄上调用RProcess

     

EExitPanic线程或进程被惊慌失措。

     

EExitPending线程或进程处于活动状态。

对于案例3中的案例1,2和Kill,您将获得EExitKill。其他案例则不言自明。