0

現在、IronRuby をコア製品の 1 つに統合するためのケース スタディに取り組んでいます。スクリプトの実行は同期でしかできないので、スクリプトはスレッド単位で実行する予定です。

しかし、さらに、スクリプトの実行をもう少し制御する必要があります。スクリプトを一時停止し、後で再開する方法が必要です。スタックフレームを含めて保存する必要があると思います。スクリプト中断時のすべての変数、私はこれを「実行時コンテキスト」と呼んでいます。残念ながら、必要な方法でスクリプトの実行を「監視」する方法が見つかりませんでした。(動的オブジェクトを介してホスティング言語へのコールバックを使用してチェックアウトしましたが、この手法では必要なコンテキストが提供されません。)

この問題にアプローチする方法を知っている人はいますか?

4

1 に答える 1

1

通常はデバッガーの実装に使用される DLR のトレース API を使用できる可能性がありますが、十分に文書化されていません。基本的には、スクリプトをデバッガーに「分割」して、後で実行を継続します。ここにいくつかの情報がありますが、少し古くなっています。

別の方法として (スクリプトの実行内容によっては、おそらくより安全ですが)、定義された時点でスクリプトがホストに返される可能性があります。Python では、ジェネレーターを使用します。Rubyについてはよくわかりませんが、スクリプトが呼び出すことのできるyield()関数をホストが提供するだけで十分です。

于 2012-06-13T15:40:35.260 に答える