Как использовать дженерики для создания класса потока, который возвращает разные значения - PullRequest
0 голосов
/ 10 ноября 2010

Я признаю это, я многому учусь из Переполнения стека.

После по этому вопросу Я понял, как создать разделенный фоновый класс Thread, который возвращает целое число, которое мне интереснокак сделать его более общим.

Но как мне это изменить (где "целое число" жестко закодировано).Я использую очень длинное имя класса только для демонстративных целей:

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

для универсального аналога?

1 Ответ

3 голосов
/ 10 ноября 2010
type
  TBackgroundThreadWithGenericResult<T> = class(TThread)
  private
    FResult: T;
  public
    type
      TSyncMethod = Procedure(ThreadResult: T) of Object;

Конечно, вы можете выбрать более сложное имя типа, чем T для вашего общего типа. Я поместил TSyncMethod в класс для простоты.

Использование будет TBackgroundThreadWithGenericResult<Integer>.Create(...).

...