0

この質問があまりにもオープンエンドではないことを願っていますが、基本的にはプロセスを管理できるプログラムを作成する必要があります。実行される処理には、完了するまでに時間がかかる多くの手順が含まれます (レポートの生成、電子メールでの送信など)。

プロセスを管理するためのメソッド シグネチャは次のようになります。

    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 や、洗練されたユーザー インターフェイスのない別のワークフロー アプリケーションのようなもの...

4

1 に答える 1

1

それはすべてあなたの要件に依存します。

長時間実行されるプロセス、またはコンピューターの再起動後も存続できるプロセスを管理する必要がある場合は、明らかにプロセスと状態の情報をデータベースに保存する必要があります。

また、プロセスが一時停止したときに何が起こるかを定義する必要があります。すぐに一時停止しますか、それとも現在のステップを最初に終了しますか? すぐに停止した場合、再起動後にのみ再開された場合に中断したところから続行できるように、その状態を保存しますか? 等....

基本的に、すべてのプロセスは独自のスレッドで実行されると言えます。そのため、プロセス マネージャーはこれらのスレッドを管理し、プロセスが状態を保存するための統一された方法を提供する必要があります。

全体として、お客様の要件がわからない場合、これ以上のことは言えません。

于 2013-02-01T10:36:30.827 に答える