QWorker更新-修正了TQJobGroup和TQForJobs存在的两个Bug

【问题描述】

1、TQJobGroup未考虑先添加再Prepare+Run的情况,造成重复投寄已经添加的作业,从而引发无效的指针操作错误,重现方式:

AGroup:=TQJobGroup.Create(False);
for I:=0 to 1 do
  AGroup.Add(DoTestProc,nil);
AGroup.Prepare;
AGroup.Run;
AGroup.MsgWaitFor;
FreeObject(AGroup);

问题在于TQJobGroup的Run函数没有检测作业是否已经投寄,然后重复投寄了已经投寄的作业。

2、TQForJobs在触发作业函数时,检查是否是匿名函数作业时,错误的使用了Assign而不是判断标志位,造成问题。

【严重级别】

【更新级别】

建议更新

【特别感谢】

音儿小白

分享到: