如何使用泛型来创建返回不同值的线程类

时间:2010-11-10 09:06:22

标签: multithreading delphi generics delphi-2009

我承认,我从Stack Overflow中学到了很多东西。

on this question之后,我理解了如何创建一个返回整数的解耦后台Thread类,我现在想知道如何使它更通用。

但是我如何更改它(其中“整数”是硬编码的)。我使用一个很长的类名只是为了恶魔般的目的:

type
  TSyncMethod = Procedure(ThreadResult: integer) of Object;
  TBackgroundThreadWithIntegerResult = class(TThread)
  private
    FResult: integer;

到通用对手?

1 个答案:

答案 0 :(得分:3)

type
  TBackgroundThreadWithGenericResult<T> = class(TThread)
  private
    FResult: T;
  public
    type
      TSyncMethod = Procedure(ThreadResult: T) of Object;

当然,您可以为通用类型选择更精细的类型名称,然后选择T。为简单起见,我已将TSyncMethod放入课程中。

用法为TBackgroundThreadWithGenericResult<Integer>.Create(...)