是否可以以某种方式监控管道任务?我尝试像这样向每个任务添加监视器
FPipeline := Parallel.Pipeline()
.Stage(StageWorker1, Parallel.TaskConfig.MonitorWith(MyMonitor))
.NumTasks(MaxReadThreadCount)
.Stage(StageWorker2, Parallel.TaskConfig.MonitorWith(MyMonitor))
.Run();
但出现异常“任务只能用单个监视器进行监视”(据我了解,发生这种情况是因为已经为管道阶段安装了内部隐藏监视器)。
使用Parallel.TaskConfig.OnMessage并提供通用的消息处理函数。
FPipeline := Parallel.Pipeline()
.Stage(StageWorker1, Parallel.TaskConfig.OnMessage(MessageProc))
.NumTasks(MaxReadThreadCount)
.Stage(StageWorker2, Parallel.TaskConfig.OnMessage(MessageProc))
.Run();
procedure MessageProc(var msg: TOmniMessage);
begin
...
end;
MessageProc
可以是正常程序或方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)