0

我正在使用自定义 TrackingParticipant 来更新数据库中的一些状态信息。由于在数据库中有时会有不正确的值,我认为 Track 方法的行为不是我所期望的。文档说:“在派生类中实现时,用于同步处理跟踪记录”我打算让所有记录一个接一个地执行,至少对于同一个状态机实例。

我错了吗?我是否应该始终使用关键部分来保护 Track 实现?我想知道整体性能......无论如何,当然,优先事项是系统按预期工作。

谢谢

4

1 回答 1

0

您需要实现 Track() 方法,因此毫无疑问它是线程安全的,由您决定。

在 Track() 完成之前,工作流运行时不会继续,因此您永远不会同时获得多个 Track() 调用。这意味着“缓慢”的数据库插入会影响您的工作流程性能。最好的性能是将数据放在并发的内存队列中,并使用后台线程来执行实际的数据库插入。

于 2012-08-10T15:16:30.820 回答