Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IronRuby需要一段时间才能加载。这正常吗?_C#_Ironruby - Fatal编程技术网

C# IronRuby需要一段时间才能加载。这正常吗?

C# IronRuby需要一段时间才能加载。这正常吗?,c#,ironruby,C#,Ironruby,遇到IronRuby,觉得它很有趣。决定试一试 我想分发一些ruby脚本。然而,我的读者可能在他们的系统上安装了ruby,也可能没有,但是他们会安装.net,所以我想我将把C#GUI与iron ruby dll捆绑在一起,这样他们就可以运行这些ruby脚本,而不必安装ruby。我还可以利用在C#中制作GUI 所以我决定通过运行一个文件来测试它 ScriptEngine engine = Ruby.CreateEngine(); engine.ExecuteFile("hello_world.rb

遇到IronRuby,觉得它很有趣。决定试一试

我想分发一些ruby脚本。然而,我的读者可能在他们的系统上安装了ruby,也可能没有,但是他们会安装.net,所以我想我将把C#GUI与iron ruby dll捆绑在一起,这样他们就可以运行这些ruby脚本,而不必安装ruby。我还可以利用在C#中制作GUI

所以我决定通过运行一个文件来测试它

ScriptEngine engine = Ruby.CreateEngine();
engine.ExecuteFile("hello_world.rb");
hello\u world.rb
包含一行

3.times { p 'hello' }
然后让我的应用程序运行并等待…
几秒钟后,它向控制台打印了3次
hello

这个ruby引擎需要很长时间吗?我想我可以启动引擎,然后让它在程序运行期间保持运行,但必须等待它启动可能会很无聊


我正在使用为.net 2.0构建的IronRuby 1.0,如果它有什么不同的话(我没有尝试过1.1,但它是为.net 4发布的广告,我不想使用它)

它可能只是JIT在开始编译所有东西。如果您想测试这个,请在hello world脚本之后执行另一个脚本,它应该立即打印到控制台。

是的,您是对的。其余脚本在第一个脚本之后立即执行。有没有办法缩短加载时间?我想,我总是可以扔一个可爱的动画来分散他们的注意力。当应用程序第一次加载时,你可以尝试运行一个空白脚本(或者一个只执行一个操作的脚本),让JIT在应用程序启动之前编译完它。(当GUI启动时,您还可以剥离另一个线程,并灰显“run”按钮,直到加载完成。如果“loading IronRuby”文本太长,可能会很有用)听起来是个不错的解决方案。用户可能不会启动应用程序,然后立即尝试运行ruby脚本。@Keikoku啊,但是如果你想在以后的轨道上包括文件关联,他们可能会:)我没想到!但我可能不会把它们作为一个小工具。