首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于流程管理的C#模式

用于流程管理的C#模式
EN

Stack Overflow用户
提问于 2013-02-01 18:30:30
回答 1查看 1.2K关注 0票数 0

我希望这个问题不会太过开放,但基本上我需要创建一个可以管理进程的程序。将完成的处理将包含许多需要很长时间才能完成的步骤(生成报告,并通过电子邮件发送它们等)。

用于管理进程的方法签名如下所示:

代码语言:javascript
复制
    int StartProcess(string inputData)
    {
        return Process.Start();
    }

    bool Pause(int processId)
    {
        return false;
    }

    bool ResumeProcess(int processId)
    {
        return false;
    }

    string GetProcessStatus(int processId)
    {
        return "running";
    }

我不能理解的部分是我如何管理进程的状态(多个进程需要能够同时运行)。

这样做的最佳方式是将状态信息存储在数据库中,然后在流程中的每个步骤完成时更新状态字段吗?是否需要数据库表?

有没有免费的第三方库可以让我实现这样的东西?我想这是一个相当常见的问题。

像K2 blackpearl或其他没有花哨用户界面的工作流应用程序……

EN

回答 1

Stack Overflow用户

发布于 2013-02-01 18:36:31

这完全取决于您的需求。

如果您需要管理长时间运行的进程,或者可以在计算机重新启动后存活的进程,那么很明显,您需要将进程和状态信息存储在数据库中。

您还需要定义当进程暂停时会发生什么。它是立即暂停,还是先完成当前步骤?如果它立即停止,它是否会存储其状态,以便只有在重新启动后才能恢复,才能从中断的位置继续?等等……

基本上,您可以说每个进程都将在其自己的线程上运行,因此您的进程管理器应该管理这些线程,并为进程提供一种统一的方式来存储其状态。

总而言之,如果我们不知道你的需求,我们就不能说更多了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14644300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档