【发布时间】:2009-04-01 12:33:29
【问题描述】:
假设一个多线程环境和一个(正确同步的)具有一个特定过程的类
procedure SortKeyList (KeyList : TList <Integer>; Inverted : Boolean);
获取一个键列表并对其进行排序。该程序使用 RTL 快速排序实现 TList.Sort:
KeyList.Sort (TComparer <Integer>.Construct (CompareKeys))
现在的问题是:CompareKeys 必须访问该类的某些成员才能对列表进行排序(这就是该类的重点)。但是 RTL 要求 CompareKeys 是一个正常的函数。如何以线程安全的方式将数据从对象传递到 CompareKeys 函数?显然,使用全局交换变量不是一种选择,因为它绝不是线程安全的。
对此有什么想法吗?
【问题讨论】:
标签: multithreading delphi sorting delphi-2009 callback