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

Dephi的同一个线程支持累次Execute吗

2013-08-01 
Dephi的同一个线程支持多次Execute吗?创建一个Thread后,Execute方法能否多次执行呢?(不希望反复创建线程)

Dephi的同一个线程支持多次Execute吗?
创建一个Thread后,Execute方法能否多次执行呢?(不希望反复创建线程)

例如:

  FreeOnTerminate := False;

  procedure TReconThread.Execute;
  begin
    inherited;

    while not Terminated do
    begin
      //do something
    end;
    Suspend();
  end;

  我做了测试,第一次执行Execute后,再次Resume,是不会执行Execute方法的。

  是我写得不对,还是本身就不支持这种做法呢?

  分不多了,见谅!


[解决办法]
Suspend放到循环里
[解决办法]
执行完不结束只休眠。另外还需要线程池。
[解决办法]
    while not Terminated do
    begin
     
      //do something finish
      if not Terminated then//最好还加上这句 
        Suspend();
    end;
[解决办法]
Finished好像没有必要了吧

[解决办法]
楼主对execute的理解错误,首先execute是thread的一个方法,thread<> winthread可以这么说吧,
execute是线程的执行体,具体的你可以看vcl中关于thread类及ThreadProc就明白了,而线程启动后就进入execute执行,当前是不会二次进入的。你suspend只是让线程不再获取时间片。

热点排行