天天加油 - 助您成才
Delphi中的线程类
您正在看的DELPHI是:Delphi中的线程类。
中保存的FreeOnTerminate设置决定是否释放线程类,在线程类释放时,还有一些些操作,详见接下来的析构函数实现。

最后调用EndThread结束线程,返回线程返回值。


至此,线程完全结束。


 
(待续)


 

Delphi中的线程类--之(3
Delphi
中的线程类--之(3    Raptor(原作)  
  
关键字
     Thread Event CriticalSection Synchronize 
  
Delphi
中的线程类


猛禽[Mental Studio]

http://mental.mentsu.com

之三


说完构造函数,再来看析构函数:


destructor TThread.Destroy;
begin
  if (FThreadID <> 0) and not FFinished then
  begin
    Terminate;
    if FCreateSuspended then
      Resume;
    WaitFor;
  end;

  if FHandle <> 0 then CloseHandle(FHandle);
  inherited Destroy;
  FFatalException.Free;
  RemoveThread;
end;

在线程对象被释放前,首先要检查线程是否还在执行中,如果线程还在执行中(线程ID不为0,并且线程结束标志未设置),则调用Terminate过程结束线程。Terminate过程只是简单地设置线程类的Terminated标志,如下面的代码:


procedure TThread.Terminate;
begin
  FTerminated := True;
end;

所以线程仍然必须继续执行到正常结束后才行,而不是立即终止线程,这一点要注意。

在这里说一点题外话:很多人都问过我,如何才能立即终止线程(当然是指用TThread创建的线程)。结果当然是不行!终止线程的唯一办法就是让Execute

上一页  1 2 3 4 5 6 7 8 9 10  ... 下一页  >> 

排行

  1. Me关键字在.NET中的使用(转)
  2. VB.Net基本语句(推荐)
  3. 字符串加解密的类(VB.NET Sourc
  4. 走近VB.Net(一),VB中的族,类,
  5. .NET平台下Web树形结构程序设计
  6. 用VB.NET和Excel排生产计划--企业
  7. VB.net是怎样做到的(四、五)
  8. 在VB.NET中应用Agent技术
  9. DataGrid常见解决方案(三)--在Da
  10. Java 正则表达式自义bean
  11. Jsp分页原代码,及用法
  12. 在Swing的JEditorPane控件中实现
  13. 在Tomcat 配置Oracle 及DB2中创建
  14. Tomcat5配置Mysql JDBC数据库连接
  15. Delphi 7 中使用RAVE报表(五)
  16. win32 API窗口句柄的获得——我的
  1. 在C#中编写多线程应用程序,简单
  2. VB实现局域网内的文件传输
  3. VB.NET中的组件开发
  4. 用vb编一个计算器,需要用到数组
  5. 如何用VB.Net创建一个三层的数据
  6. VB.Net的ByVal和ByRef --ByVal时
  7. VB.NET的阳历与农历转换的算法
  8. VB.NET操作SQL Server完全模块
  9. VB中定制DllRegisterServer、Dll
  10. VB中打印ACCESS报表
  11. ECLIPSE ANT INTEGRATION
  12. 在eclipse + MyEclipse下配置建立
  13. 基于WebGIS的GPS系统的设计与实现
  14. JBuilder2005+JBOSS+Oracle9i开发
  15. mysql4.1.10的JDBC驱动(mysql-co
  16. 在Win2003+Tomcat+MySQL下运行JP
  1. vb可不可以实现虚拟中断
  2. VB.NET中的组件开发
  3. 用vb编一个计算器,需要用到数组
  4. 如何用VB.Net创建一个三层的数据
  5. VB.Net的ByVal和ByRef --ByVal时
  6. VB.NET的阳历与农历转换的算法
  7. VB.NET操作SQL Server完全模块
  8. VB中定制DllRegisterServer、Dll
  9. VB中打印ACCESS报表
  10. 基于WebGIS的GPS系统的设计与实现
  11. JBuilder2005+JBOSS+Oracle9i开发
  12. mysql4.1.10的JDBC驱动(mysql-co
  13. 在Win2003+Tomcat+MySQL下运行JP
  14. (原创)当server碰到server,soc
  15. [自创]JCreator安装学习使用方法
  16. 自动生成拼音(汉字反查到拼音)

最近更新

  • 推荐阅读
  • DELPHI《Delphi中的线程类》Delphi中的线程类