【更新内容】
TQJobExtData 扩展了一个新的构造函数,接受一个array of const 数组来传递多个参数。首先是构造函数:
constructor Create(const AParams: array of const); overload;
然后通过两个属性来访问其传入的参数:
- ParamCount : 返回传进的参数个数
- Params[AIndex:Integer] : 返回第 AIndex 个参数的值(类型为Variant)
由于指针类型不受 Variant 的默认支持,所以转换时做了一些处理,将其转换为32位整数(32位平台)或64位整数(64位平台),在访问时请特别注意。
下面是一段多参数调用的例子,使用了匿名函数版本的作业,仅供参考:
Workers.Post( procedure(AJob: PQJob) var I:Integer; S:String; begin S:='Name='+AJob.ExtData.Params[0]+#13#10+ 'Age='+IntToStr(AJob.ExtData.Params[1])+#13#10+ 'Type='+AJob.ExtData.Params[2]; ShowMessage(S); end, TQJobExtData.Create(['Jody',28,'Boy']), true, jdfFreeAsObject);
另外需要注意参数的顺序和访问时要保证一致,否则,后果不是我要负责的。
【更新级别】
可选
【特别感谢】
猫叔、芒果