c# - 在数据库操作的 WF CodeActivity 和 AsyncCodeActivity 之间进行选择

标签 c# workflow-foundation-4

我对 WF 还是很陌生,所以如果我第一次没有正确地表达这个意思,请多多包涵。 ;)

如果您在一个相当低容量的环境(每天几百个请求)中针对规范化良好的数据库进行选择,使用主键,返回单个记录,是否使用 CodeActivity vs AsyncCodeActivity?

虽然我对托管和执行有一些额外的研究要做,但有可能(但不太可能)同时或几乎同时收到多个请求。我不确定这是否会改变答案。

谢谢!

最佳答案

Microsoft 在其 ExecuteSqlQuery 事件中使用了非异步:http://wf.codeplex.com/releases/view/43585

异步事件: “这对于必须执行异步工作的自定义事件非常有用,而无需保留工作流调度程序线程并阻止任何可能能够并行运行的事件。”

“作为异步的结果,AsyncCodeActivity 可能会在执行期间引起空闲点。由于异步工作的易变性,AsyncCodeActivity 总是在事件执行期间创建一个非持久 block 。这会阻止工作流运行时在异步工作的中间持久化工作流实例,并且还防止在异步代码执行时卸载工作流实例。”

来源:http://msdn.microsoft.com/en-us/library/ee358731.aspx

编辑:我注意到只指出了使用异步的缺点我会考虑罗恩和蒂姆的 react 做出更好的决定

关于c# - 在数据库操作的 WF CodeActivity 和 AsyncCodeActivity 之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7418327/

相关文章:

c# - 检测是否安装了 WIF 运行时的最佳方法

c# - 如何编写一个长时间运行的事件来调用 WF 4.0 中的 Web 服务

Windows Workflow Foundation 4 (WF4) 重新托管

workflow-foundation-4 - Workflow 4.0 中的多线程

c# - Windows 8.1 无缘无故地扩展了 WinForms 应用程序

c# - 使用 Reuse.InWebRequest/Reuse.InThread 时使用 DryIoc 解析新实例

C# 将一个列表与另一个列表的一部分进行比较

c# - Windows Workflow Foundation - 获取已执行事件的列表?

workflow-foundation-4 - 如何获取 WorkflowApplication 的上下文?

c# - 如何使用 Entity Framework 执行插入查询