【问题标题】:How to get a runtime context, when exection a script on the DLR scripting host?在 DLR 脚本主机上执行脚本时如何获取运行时上下文?
【发布时间】:2012-06-13 07:50:21
【问题描述】:

目前我正在研究将 IronRuby 集成到我们的核心产品之一的案例研究。 脚本的执行只能以同步的方式执行,所以我打算在每个线程中执行脚本。

但另外我需要对脚本执行进行更多控制,尤其是。我需要一种方法来暂停脚本并在稍后的时间点恢复它。 我想我需要存储一个堆栈帧,包括。脚本暂停时的所有变量,我称之为“运行时上下文”。唉,我没有找到以所需方式“监视”脚本执行的方法。 (我通过动态对象使用对宿主语言的回调进行了检查,但这种技术不提供所需的上下文。)

有没有人知道如何解决这个问题?

【问题讨论】:

    标签: .net ironpython ironruby dynamic-language-runtime


    【解决方案1】:

    您可能会使用 DLR 的跟踪 API,该 API 通常用于实现调试器,但没有很好的文档记录。您基本上只需将脚本“分解”到调试器中,然后再继续执行。有一些信息here,但有点过时了。

    或者(并且可能更安全,取决于您的脚本正在做什么),您的脚本可以在定义的点返回给主机。在 Python 中,我会使用生成器;我不确定 Ruby,但即使主机提供脚本可以调用的 yield() 函数也应该足够了。

    【讨论】:

    • 是的,我也认为这是一种方法......但正如你所说的那样;很难找到文档。
    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2011-06-06
    • 1970-01-01
    相关资源
    最近更新 更多