- 締切済み
子プログラムの強制終了
失礼します。 現在オセロゲームをつくっており、プレイヤー、COM部分の処理を作り終えたのですが、親プログラムのある部分で手が止まってしまっています。 ある部分とはCOMが持ち時間以上処理をしたら時間切れとし、親プログラムで処理を強制的に処理を終了させたいのですが、COM部分は純粋に次の一手だけのアルゴリズムにしたいと思っているので、子プログラムで時間切れの処理をしたくないと考えています。 正直なところ処理が子プログラムに移ってしまっている以上、不可能のように思えてきたのですが、可能でしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tatsu99
- ベストアンサー率52% (391/751)
もし、子プログラムを子プロセス又は子スレッドとして、実行させるなら、その子プログラムを強制的に殺す手段はあります。 但し、今回の場合は、COMは、単なるメソッドですので、このメソッドを、呼び出し、しかも、遅いからといって殺すことは出来ません。 今回のケースでは、タイムアウトによる処理を打ち切る方法は、COM側にタイムアウトの判定機能を付加する以外にないと考えます。
- a-saitoh
- ベストアンサー率30% (524/1722)
OS依存ですが、パフォーマンスを落とさずに時間切れ処理はできますよ。 UNIX系だと、子プロセスの処理の最初でalarm(10)を呼び出しておけば、10秒後にプロセスが強制停止します。もうちょっと高度でもっと穏便なほうほうもいろいろありますが。 お使いのOSについてお調べになることをお勧めします。
- tatsu99
- ベストアンサー率52% (391/751)
OSは何でしょうか。 親プログラムとは、親プロセスのことでしょうか。 それとも、親スレッドのことでしょうか。 それとも、全くべつのことでしょうか。
補足
返事が遅くなってしまってすいません。 返信ありがとうございます!! OSはWindows XP Professional 2002です。 親プログラムについてですが、プロセス、スレッドの定義が私自身あいまいなので、うまく説明できません、ごめんなさい。 考えている親プログラムは図にすると 親(すべての状態を保持するプログラム)の子を呼び出すメソッド → 子(次の一手の思考)の生成 → 次の一手を親に返す → 親が情報を判定し更新 です。補足になってなかったらすいません
お礼
遅くなってしまってすいません。 返信ありがとうございます!!。 残念です。windowsですわ。 昔聞いた話ですが、windowsは何かの処理をしている間他のプログラムは監視できていない、みたいなことを聞いたことがあります。 やはりむずかしいですね。考え方を変えてみようと思います。 ありがとうございました!!