首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一个关于线程等待的有关问题

2012-03-12 
一个关于线程等待的问题程序代码如下://strList是一个已经有字符串在内的TStringList对象for(inti0i s

一个关于线程等待的问题
程序代码如下:

//strList是一个已经有字符串在内的TStringList对象
for(int   i=0;i <=strList-> Count()-1;i++)
{
    TNewThread   newtread   =   TNewThread(false,strList-> String[i]);
}

TNewThread   是自己定义的一个线程类,基类为TThread。

现在的问题是,如何使得for循环中创建一个线程后并等待该线程执行完毕后,for才继续执行下一次循环,从而创建第二个线程?

[解决办法]
用WaitFor()试试
[解决办法]
按照你的题面上的意思,用WaitFor函数就可以实现了。

但你又说你不想让主线程挂起,那可以让第二个线程用WaitFor的方法等第一个线程结束,而第三个线程等第二个线程结束等等。

比如,将第一个线程的指针当作参数传给第二个线程,然后在线程的执行函数中调用传入参数线程的WaitFor函数。
[解决办法]
晕,看楼主的逻辑不是很清楚,即然你是第一个线程做完了再做第二个线程。那你为什么还要创建这么多的线程做什么呢?反正同时运行的只有一个线程。
线程创建的时候用TNewThread *newtread = TNewThread(false,strList-> String[i]);
认同itbear(Victor) 的观点。
如果你真的想自己管理这些线程,你就要将这些线程句柄存放起来,自己手动释放。

热点排行