How can I cancel a running script


#1

Hi,

I have an IronRuby script running that I’d like to be able to cancel
from outside the script. Is there any way to do that?

ScriptEngine scriptEngine = Ruby.CreateEngine();
ScriptScope scriptScope = scriptEngine.CreateScope();
string script =
“print “1\n”\n” +
“print “2\n”\n” +
“sleep(10)\n” +
“print “3\n”\n”;
ThreadPool.QueueUserWorkItem(delegate { scriptEngine.Execute(script,
scriptScope); });

In the above example how could I cancel the script to stop it getting to
3 without having to resort to aborting the thread it is running on?

Regards,

Aaron


#2

The script itself might check some (global) variable time to time and if
it is “on” terminate itself. For example, use Kernel#select with a
timeout instead of sleep.

Tomas