在symbian中,用RThread来操作线程,一个RThread对象代表一个线程的句柄。常用RThead对象来创建或操作其他线程。 RThread的基类是RHandleBase类,该类封装了句柄的行为。RThread,RProcess,RMutex和RSession-Base都继承自RHandleBase。
创建一个线程
/* Name of the new thread */
_LIT(KThreadName, "MyFirstThread");
/* 下面的函数是线程将要执行的。该函数应是全局函数或静态函数, 参数parm是要传递给线程的数据,它的类型为TAny*, 相当标准C
中的void* 指针 */
TInt CThreadExampleAppUi::ThreadEntryPoint(TAny* param){ TInt* para = static_cast<TInt *>(param); *para = 1; return 1;}
/* 创建一个属于当前进程的线程,并打开句柄. */
TInt res = iThread.Create(KThreadName, ThreadEntryPoint, KDefaultStackSize, NULL, &iVariable);
/* 线程被创建以后进入等待状态,并不能立即执行. 如果要线程执行,需要调用它的Resume方法*/
iThread.Resume();
停止、删除一个运行的线程。
可以调用 Suspend() 来停止一个线程. 但它仍然存在,可以调用 Resume()来继续.如果
要彻底删除一个线程,可调用Kill或Terminate。如果进程的主线程被删除,那么程序也会被终止。