Delphi TThread 和 CreateThread 简单区别

(JDD_KK原创)

一、写代码的时候碰到一个线程内存泄漏的问题:
描述:
创建线程: Delphi 自带的 TThread 类
强制结束: TerminateThread
结果 : 会造成内存泄漏。

创建线程 : CreateThread
强制结束:TerminateThread
结果 : 不会造成内存泄漏。

二、若有CreateThread 的线程函数里面有需要动态分配内存的情况,则需要将 需要动态分配和释放内存放在线程函数外面,不能放在函数里面。若放在里面,线程函数自动结束时会造成内存泄漏,但是使用TerminateThread强制结束又没有内存泄漏。(这是一个很奇怪的现象,大家可以参照一下。可能我自己做的有不对的,也可以告诉我,一起学习的哈)

三、简述一下其中两个函数的使用方式

CreateThread(nil, 0, @线程函数名, nil(线程函数的参数,我这里无参就用的nil,若需要参数,网上有例子,大家可以看一下), 0, id(TerminateThread强制结束时需要用到));
注:使用CreateThread,一定要使用CloseHandle;

TerminateThread(id, 0(超时,我一般就设置立即结束为0));

简单放置一段代码哈,里面有些小细节我会在后面注释的

type
  TForm1 = class(TForm)
  end;
  procedure IPNetPrinter;stdcall; //此声明要放
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值