2

我从 C# 交易模拟应用程序使用 R.NET 运行一些 R 命令。当我运行第一次模拟时,一切正常。当我运行第二次模拟时,它挂起。模拟应用程序在一个新的应用程序域中运行每个模拟。据我了解,R.NET 仅在一个应用程序域中运行。有没有办法解决这个问题,因为即使是 dispose 方法也不允许 REngine 对象的另一个初始化。

4

1 回答 1

0

不使用

using (engine = REngine.GetInstance())
{
  ...
}

因为这最终会处理 REngine 实例并导致已知的 RDotNet 问题“单个 REngine 实例已被处理(即关闭)。多个引擎重新启动是不可能的。”

改用:

var engine = REngine.GetInstance();
...

并且不要丢弃它!

于 2021-01-15T19:56:02.350 回答