有线程a,b,c,想a,b先后启动c。同一时刻只有一个c在运行。?(25分)

  • 主题发起人 yecloudy
  • 开始时间
Y

yecloudy

Unregistered / Unconfirmed
GUEST, unregistred user!
有线程a,b,c,想a,b先后启动c。同一时刻只有一个c在运行。?
问题;
1。因为我不知道如何send消息给线程,我只会sendmessage到主窗口,
procedure Tmainform.ShowSearchSuccess(var msg:Tmessage);
begin

Ins:=TinsertDataThread.create(FtpIp);
end;
a完成后,就通知主窗口就启动添加到数据库的线程TinsertDataTHREAD,不过,在TinsertDataSet还在添加
数据的时候,又有新的线程b通知主窗口启动TINSERTDATATHREAD,所以就同时有两个
TinsertDataThread在运行,所以我该怎么该呢?谢谢。
我只想同一时刻只有一个TinsertDataThread在运行。
 
笨方法就是加一个全局变量:)
 
最好 还是定义一个互斥塞,,,你得主窗口可以检查这个互斥对象是否为发信号状态,
如果是这样表明就没有线程拥有它,别的线程就可以通知主窗口启动线程了塞,,我
给你讲过互斥的使用方法了的嘛!!??
 
接受答案了.
 
顶部