红鱼儿

kbmMW 5.10.01试用报告

1.FileClient.SameFile

调用这个方法,当本地文件不存在时,会一直等待。跟踪代码,发现:

function TkbmMWCustomFileClient.SameFileEx(LocalPath:string; RemotePath:string; const Args:array of Variant{$IFDEF KBMMW_LICENSE_MESSAGING}; const AOptions:TkbmMWMessageOptions = []; const APostSubject:string = ''{$ENDIF}):boolean;
...
     ev:=Scheduler.Run(procedure(const AEvent:IkbmMWScheduledEvent)
                       begin
                            AEvent.Data:=null;
                            AEvent.Data:=LocalChecksum(LocalPath);//这里产生异常,则下面的ev.WaitRun不退出,一直等待
                       end)
               .Precise.Activate;
     try
        sRemote:=ChecksumEx(RemotePath,Args{$IFDEF KBMMW_LICENSE_MESSAGING},AOptions,APostSubject{$ENDIF});
     finally
        // Await local checksum done before continuing.
        ev.WaitRun;
     end;
...

反馈给作者,等修正。如果文件存在,这个方法执行正常。

kbmMW 5.10.20没有解决!用下面代码能更好的说明问题,已经发给作者。

procedure Tmainform.Button6Click(Sender: TObject);
var
   ev:IkbmMWScheduledEvent;

begin

     ev:=Scheduler.Run(procedure(const AEvent:IkbmMWScheduledEvent)
                       begin
                            raise Exception.Create('Error Message');
                       end)
                       .WhenException(procedure (const AEvent:IkbmMWScheduledEvent; const AException:Exception)
                                      begin
                                           //
                                      end)
               .Precise.Activate;
     try
        //
     finally
        ev.WaitRun; // Wait forever
     end;

     ShowMessage('Scheduled Event is finish!'); //Can't execute here


end;

我们手工在线程任务中产生一个异常,这将导致ev.WaitRun一直运行,就卡死到这里,再进一步跟踪,卡死到ev.WaitRuns的循环中了。

2.SmartBinding for ListView

测试发现,当绑定数据集与ListView时,增加、删除记录,ListView不会同步显示。如果编辑一条记录,则能够自动同步显示。

也反馈给作者,不知结何如何?

kbmMW 5.10.20支持了!

 

posted on 2019-11-20 13:51  红鱼儿  阅读(433)  评论(0编辑  收藏  举报