グローバルスレッドプールを利用していくつかのファイル操作を実行するDelphi 2007アプリでOmniThreadLibraryを使用しています(特定の順序で実行されることを確認する必要があります)。
TStringList に格納されている、新しく作成された Ini ファイルの内容があります。
次に、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 の素晴らしい作品、ありがとう。