新delphi的线程TThread有了CreateAnonymousThread方法,如果再为它加一个可传递的参数不就更好了吗?代码如下:

  TAnonymousThreadX<T> = class(TThread)
private
FProc: TProc<T>;
AValue:T;
protected
procedure Execute; override;
public
constructor Create(const AProc: TProc<T>;ProcPar:T);
end;
TThreadHelper= class helper for TThread
public
class function CreateAnonymousThreadX<T>(const ThreadProc: TProc<T>;proPar:T): TThread; static;
end; implementation { TAnonymousThreadX } constructor TAnonymousThreadX<T>.Create(const AProc: TProc<T>;ProcPar:T);
begin
inherited Create(True);
FreeOnTerminate := True;
FProc := AProc;
Avalue:=ProcPar;
end; procedure TAnonymousThreadX<T>.Execute;
begin
inherited;
FProc(Avalue);
end; { TThreadHelper } class function TThreadHelper.CreateAnonymousThreadX<T>(const ThreadProc: TProc<T>; proPar: T): TThread;
begin
Result := TAnonymousThreadX<T>.Create(ThreadProc,proPar);
end;

代码挺简单的,就是传递了一个方法及参数. 在线程里调用就是了.

将以上代码保存在一个单元中,引用了之后,就可以这样用了:

//这样使用
TThread.CreateAnonymousThreadX<Integer>(TestX,).Start; //这是TestX方法体
procedure T***.TestX(Avalue: Integer);
begin
btnContinue.Caption:=IntToStr(Avalue);
end; //如果不想定义TestX方法,也可以如下方法直接调用
TThread.CreateAnonymousThreadX<Integer>(
procedure(Avalue:Integer)
begin
btnContinue.Caption:=IntToStr(Avalue);
end
,).Start;

如果执行线程的方法有两个,三个参数,对照着改就是了.

这样用线程是不是更简单一些了呢.

扩展 delphi 线程 使之传递参数.的更多相关文章

  1. 扩展 delphi 线程 使之传递参数.(给匿名线程增加参数)

    新delphi的线程TThread有了CreateAnonymousThread方法,如果再为它加一个可传递的参数不就更好了吗?代码如下: TAnonymousThreadX<T> = c ...

  2. Jmeter线程组间传递参数

    现在做测试和以前不太一样了,以前只要站在一个用户的角度做端到端的UI测试就可以了,现在不会做接口测试,出去都不好意思和别人打招呼.那提到接口测试,就不得不提一下接口测试利器Jmeter,大家也都知道, ...

  3. 【delphi】Delphi过程、函数传递参数的八种方式

    Delphi过程函数传递参数的八种方式

  4. jmeter线程组之间传递参数

    JMeter 变量作用域局限于所属线程.这样设计是经过深思熟虑的,目的是让测试线程能够独立运转.有时候用户可能需要在不同线程间(可能属于同一个线程组,也可能不属于同一个线程组)传递变量. 其中一种方法 ...

  5. Delphi线程简介---Create及其参数、Resume、Suspend

    TThread在Classes单元里的声明如下 type TThread = class private FHandle: THandle; FThreadID: THandle; FTerminat ...

  6. jmeter 发送加密请求 beanshell断言 线程组间传递参数

    原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求, ...

  7. jmeter解决不同线程组之间传递参数问题

    首先在第一个线程组里讲你需要保存的值放入到jmeter的某个属性中,属性名名字自己定义,如上图的token , props.put("token", token),第二个参数必须是 ...

  8. Net线程足迹 传递参数至线程

    方法一:应用ParameterizedThreadStart这个委托来传递输入参数,这种方法适用于传递单个参数的情况. using System; using System.Collections.G ...

  9. Jmeter 跨线程组传递参数 之两种方法

    终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直 ...

随机推荐

  1. JQuery POST请求乱码...

    引言: 在JQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢? 问题的引入: var regid = $('#oregion').combobox('getV ...

  2. 程序员新人怎样在复杂代码中找 bug?

    分享下我的debug的经验 1. 优先解决那些可重现的,可重现的bug特别好找,反复调试测试就好了,先把好解决的干掉,这样最节约时间. 2. 对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经 ...

  3. Zendstudio 9.0.2 安装Aptana3 并且配置 jQuery

    Zendstudio 9.0.2 安装Apnata3 并且配置 jQuery aptana-javascript-jquery.ruble文件夹下载地址: http://dl.dbank.com/c0 ...

  4. ajaxFileUpload 报这错jQuery.handleError is not a function 博客分类: WEB前端jquery

    ajaxfileuploadhandleError  今天刚打个一个技术群,里面有人问标题上的问题,嘿,我恰好遇过,现在大家至少也在用jquery1.9以上的版本,ajaxfileupload的版本早 ...

  5. php实现二路归并排序

    $arr = [9, 43, 12, 0, 87, 1]; function merge_sort(&$arr){ _merge_sort($arr, $arr, 0, count($arr) ...

  6. 转:eclipse怎样修改包(package)的显示样式、格式 工具/原料

    转:http://blog.csdn.net/longyaxx258/article/details/50774128 eclipse 打开我们的项目,可以看到左侧的package看上去特别多,没有层 ...

  7. JDK 自带工具试用(一)

    简述: 运维监控会用到JDK的小工具 说明: 1. jps 用来查看当前运行的Java进程 我在eclipse中起了一个web 应用 或者用jps -l 可以查看的更清楚一点 jps -v 看到103 ...

  8. C#导出DataGridView到Excel

    public class ExcelHelper { private static object missing = Type.Missing; #region ================导出= ...

  9. 微信内置浏览器中,点击下拉框出现页面乱跳转现象(iphone)

    微信内置浏览器中,点击下拉框出现页面乱跳转现象(iphone) 前言: 这是小菜博客的第三篇文章.一直认为自己可以表达的东西太过简单,难以上台面,总是吝啬地不肯写.就算是写,也不知道从何开始.在同事的 ...

  10. Table of Contents - Apache Commons

    Apache Commons 简述 CLI Usage of CLI Option Properties Codec 常见的编码解码 Compress Configuration2 Quick sta ...