我在 Delphi 2007 应用程序中使用 OmniThreadLibrary,该应用程序利用全局线程池来执行一些文件操作(我需要尝试并确保它们按特定顺序完成)。
我有一个新创建的 Ini 文件的内容,该文件存储在 TStringList 中。
然后我将 TStringList 传递给 TOmniTask 的一个实例。
class procedure saveIniFile(const iniFile: TStringList);
var
task : IOmniTaskControl;
begin
task := CreateTask(saveIniFileTask, 'saveIniFile')
.SetParameter('iniFile', iniFile)
.Unobserved
.Schedule;
end;
我无法弄清楚如何在 TOmniTask 实例中检索 TStringList
class procedure saveIniFileTask(const task: IOmniTask);
var
iniFile: TStringList;
begin
iniFile := task.Param['iniFile'];
end;
以上将返回错误:
Incompatible types: 'TStringList' and 'TOmniValue'
我尝试过类型转换:
iniFile:= TStringList(task.Param['iniFile'].AsObject);
但是得到一个编译器错误:
F2084 Internal Error: C4310
我正在使用 OmniThreadLibrary 3.0 版 - 我无法在 D2007 中编译 3.03b
如果@gabr 是关于:伟大的工作 OmniThreadLibray,谢谢。