代码之家  ›  专栏  ›  技术社区  ›  UnDiUdin

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

  •  0
  • UnDiUdin  · 技术社区  · 14 年前

    之后 on this question 我知道如何创建一个分离的后台线程类,该类返回一个整数,我现在想知道如何使其更通用。

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

    一般的对应物?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Jens Mühlenhoff    14 年前
    type
      TBackgroundThreadWithGenericResult<T> = class(TThread)
      private
        FResult: T;
      public
        type
          TSyncMethod = Procedure(ThreadResult: T) of Object;
    

    当然,您可以选择一个更详细的类型名 T TSyncMethod 为了简单起见进入课堂。

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