2013-02-01 2 views
0

이 질문이 너무 열려 있지 않았 으면 좋겠지 만 기본적으로 프로세스를 관리 할 수있는 프로그램을 만들어야합니다. 처리를 완료하는 데 오랜 시간이 걸리는 많은 단계가 포함됩니다 (보고서 작성 및 이메일 발송 등). 같은 보일 것 과정을 관리하기위한프로세스 관리를위한 C# 패턴

방법 서명 : 나는 꽤 주위에 내 머리를 얻을 캔트

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"; 
    } 

부분은 제가 여러 프로세스 수있을 상단 필요 (프로세스의 상태를 관리 할 방법입니다 한 번에 실행).

상태 정보를 데이터베이스에 저장 한 다음 프로세스의 각 단계가 완료 될 때 상태 필드를 업데이트하는 가장 좋은 방법은 무엇입니까? 데이터베이스 테이블이 필요합니까?

이와 비슷한 것을 구현할 수있는 무료 제 3 자 라이브러리가 있습니까? 나는 꽤 일반적인 문제라고 생각한다.

blackpearl K2 같은

뭔가 또는 멋진 사용자 인터페이스없이 다른 워크 플로우 애플리케이션 ...

+0

Windows Workflow Foundation (WF 4.5)을 확인 했습니까? –

+0

나는 [Workflow Foundation] (http://msdn.microsoft.com/en-us/vstudio/jj684582.aspx)을보아야한다고 믿는다. – StuartLC

+0

아무 소식이 들리지 않았다. 지금 빨리 – woggles

답변

1

그것은 모두 당신의 요구 사항에 따라 달라집니다.

장기 실행 프로세스 또는 컴퓨터 재부팅시 생존 할 수있는 프로세스를 관리해야하는 경우 분명히 프로세스 및 상태 정보를 데이터베이스에 저장해야합니다.

또한 프로세스가 일시 중지되었을 때 수행 할 작업을 정의해야합니다. 즉시 일시 중지 되었습니까, 아니면 먼저 현재 단계를 완료합니까? 즉시 중지되면 다시 부팅 한 후에 만 ​​다시 시작하면 중단 된 부분부터 계속 진행할 수 있도록 상태가 저장됩니까?

기본적으로 모든 프로세스가 자체 스레드에서 실행되므로 프로세스 관리자가 이러한 스레드를 관리하고 프로세스를 일관된 방식으로 제공하여 상태를 저장해야한다고 말할 수 있습니다.

귀하의 요구 사항을 모르는 경우 더 많은 것을 말할 수 없습니다.