gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:35 24 4
gpt4 key购买 nike

我创建了一个执行网络请求并将结果存储到数据库中的事件。我发现对于这些长时间运行的事件,我应该编写一些不同的代码,这样工作流引擎线程就不会被阻塞。

public sealed class WebSaveActivity : NativeActivity
{
protected override void Execute(NativeActivityContext context)
{
GetAndSave(); // This takes 1 hour to accomplish.
}
}

我应该如何重写此事件以满足长时间运行事件的要求

最佳答案

您可以使用例如在现有进程中生成一个线程ThreadPool.QueueUserWorkItem()因此,如果需要,您的其余工作流程将继续运行。不过,请务必先了解多线程和线程同步的含义。或者你可以查看 Hangfire或类似的组件将整个作业卸载到不同的进程中。

编辑:

根据您的评论,您可以查看基于任务的异步模式 (TAP):Link 1 , Link 2这会给你一个很好的编写代码的模型,在等待长时间运行的操作结果返回之前,继续处理可以完成的事情。但是,我不确定这是否满足您的所有需求。特别是在 Windows Workflow Foundation 中,您可能想要查看某种形式的 workflow hibernation/persistence .

关于c# - 如何编写一个长时间运行的事件来调用 WF 4.0 中的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44619188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com