TrackingParticipant.Track方法是否安全线程>

时间:2012-08-10 14:48:35

标签: workflow-foundation-4

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

我错了吗?我应该始终使用关键部分保护Track实现吗? 我对整体表现感到疑惑......当然,最重要的是系统按预期工作。

由于

1 个答案:

答案 0 :(得分:0)

你需要实现Track()方法,所以你决定不存在线程安全的问题。

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

相关问题