我希望这个问题不会太过开放,但基本上我需要创建一个可以管理进程的程序。将完成的处理将包含许多需要很长时间才能完成的步骤(生成报告,并通过电子邮件发送它们等)。
用于管理进程的方法签名如下所示:
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或其他没有花哨用户界面的工作流应用程序……
发布于 2013-02-01 18:36:31
这完全取决于您的需求。
如果您需要管理长时间运行的进程,或者可以在计算机重新启动后存活的进程,那么很明显,您需要将进程和状态信息存储在数据库中。
您还需要定义当进程暂停时会发生什么。它是立即暂停,还是先完成当前步骤?如果它立即停止,它是否会存储其状态,以便只有在重新启动后才能恢复,才能从中断的位置继续?等等……
基本上,您可以说每个进程都将在其自己的线程上运行,因此您的进程管理器应该管理这些线程,并为进程提供一种统一的方式来存储其状态。
总而言之,如果我们不知道你的需求,我们就不能说更多了。
https://stackoverflow.com/questions/14644300
复制相似问题