Y
YuanGuo2001
Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的,我在主程序中创建一个线程,这个线程实现搜索文件的功能,
为了让用户能Termanited该线程,我在主程序中(注意:不是在线程中)
同时创建一个Modeless的Form,这个Form上的Cancer按钮可以Terminate线程。(实现的代码如下)
现在的问题是:
我不知道如何实现[blue]定时[/blue]出现Form窗口(譬如线程执行1秒或者已经搜索了1000个文件的时候)。
解决思路如下
1.用两个线程实现: SearchThread(搜索线程)和Form创建线程,这个涉及到很多问题,譬如同步等。
2.用一个线程,即SearchThread(搜索线程)(即我的实现方法:代码见下面)
但是线程执行的时间很难判断,而且知道了也不能把消息发送给主窗口???
还望不吝赐教,谢谢!
//*******************代码*******************:
Public SearchThread: TSearchThread;//搜索线程
begin
SearchThread := TSearchThread.Create(32,Recures,Dir,Filter);
//同时创建窗口
//if 线程执行了1秒 //窗口创建条件?????这里怎么实现啊??
try
if not Assigned(SearchForm) then
SearchForm := TSearchForm.Create(Application);
SearchForm.show;
except
end;
//edn try
end;
为了让用户能Termanited该线程,我在主程序中(注意:不是在线程中)
同时创建一个Modeless的Form,这个Form上的Cancer按钮可以Terminate线程。(实现的代码如下)
现在的问题是:
我不知道如何实现[blue]定时[/blue]出现Form窗口(譬如线程执行1秒或者已经搜索了1000个文件的时候)。
解决思路如下
1.用两个线程实现: SearchThread(搜索线程)和Form创建线程,这个涉及到很多问题,譬如同步等。
2.用一个线程,即SearchThread(搜索线程)(即我的实现方法:代码见下面)
但是线程执行的时间很难判断,而且知道了也不能把消息发送给主窗口???
还望不吝赐教,谢谢!
//*******************代码*******************:
Public SearchThread: TSearchThread;//搜索线程
begin
SearchThread := TSearchThread.Create(32,Recures,Dir,Filter);
//同时创建窗口
//if 线程执行了1秒 //窗口创建条件?????这里怎么实现啊??
try
if not Assigned(SearchForm) then
SearchForm := TSearchForm.Create(Application);
SearchForm.show;
except
end;
//edn try
end;