为数据库操作选择WF CodeActivity和AsyncCodeActivity之间

Joh*_*oon 4 c# workflow-foundation-4

我仍然是WF的新手,所以如果我第一次没有正确使用这个措辞,请耐心等待.;)

如果您正在针对规范化的数据库进行选择,使用主键,在相当低容量的环境中返回单个记录(每天几百个请求),是否使用CodeActivityvs 确实有所不同AsyncCodeActivity

虽然我还有一些关于托管和执行的额外研究,但是有可能(但不可能)在同一时间或几乎同时接收多个请求.我不确定这是否会改变答案.

谢谢!

Dav*_*ghi 5

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

异步活动:"这对于必须执行异步工作而不保留工作流程调度程序线程并阻止可能并行运行的任何活动的自定义活动非常有用."

"由于异步,AsyncCodeActivity可能在执行期间引发空闲点.由于异步工作的易失性,AsyncCodeActivity总是在活动执行期间创建一个无持久阻塞.这可以防止工作流运行时持久化异步工作中的工作流实例,也防止工作流实例在异步代码执行时卸载."

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

编辑:我注意到只指出使用异步的缺点我会考虑Ron和Tim的回答来做出更好的决定


Ron*_*obs 5

总的来说,我强烈鼓励正在进行任何类型I/O的活动开发人员使用AsyncCodeActivity并尽可能调用底层的Async API.即使查询很短,这也总是优先的.