问一个弱弱的:多线程问题

flyingkoala 2005-04-22 01:36:19
如何让线程顺序的执行?就是并发a,执行完了再执行并发b,然后c......

主要是想让前台的用户马上返回,不需等待。
...全文
162 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
blt 2005-05-25
  • 打赏
  • 举报
回复
给每个线程编号1、2、3、4。每个线程结束后都向form发一个消息,form收到消息后再启动下一个线程。
flyingkoala 2005-04-22
  • 打赏
  • 举报
回复
放到主线程顺序执行会让用户等待的感觉

其实是一个线程执行的队列
dongliu 2005-04-22
  • 打赏
  • 举报
回复
顺序执行还用多线程干什么,全部放到主线程不就是顺序执行了吗,
这种思路是对多线程的浪费
flyingkoala 2005-04-22
  • 打赏
  • 举报
回复
如果中间涉及对象操作呢? 该怎么实现互斥呢?
何鲁青 2005-04-22
  • 打赏
  • 举报
回复
while not read(integer) do
begin
sleep(1000);
end;
dosomething;
write(integer);
何鲁青 2005-04-22
  • 打赏
  • 举报
回复
给每个线程一个编号
例如线程1
线程2
......
如果线程1必须在线程2之前完成那么定义一个全局integer变量用来记录现在运行到的线程的编号。
线程1在执行的时候integer变量可以让他等于0,当1执行完毕再写1,而线程2创建之后就隔一段时间去查询一下全局变量的值就可以了,等一就开始执行....
beyondtkl 2005-04-22
  • 打赏
  • 举报
回复
可以用事件之類的呀。。

CreateEvent..

WaitForSingleOjbect
WaitForMultipleObject
wandanle 2005-04-22
  • 打赏
  • 举报
回复
用一个全局变量标识
flyingkoala 2005-04-22
  • 打赏
  • 举报
回复

我的意思是TThread的Execute只能互斥访问,因为里面涉及了数据库操作
longchaohui 2005-04-22
  • 打赏
  • 举报
回复
或者用线程间通信方式,
在a执行完通知b,b通知c……
在此建议用用事件方式进行通知
flyingkoala 2005-04-22
  • 打赏
  • 举报
回复
不,我是用timer触发的 有可能前一个timer触发的线程没有执行完,又马上被再触发了一个,但两个进程必须是顺序执行的
请教
自己如何同步自己
zzlingaaa 2005-04-22
  • 打赏
  • 举报
回复
在线程结束代码里创建下一个线程就是了

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧