private void OnException(Task <ScriptState <object> > t, object state) { _consoleRedirect.Dispose(); var ex = t.Exception; VSTools.LogError(ex); VSTools.LogEndRunning(true); var executionEnd = (Action <object, Exception>)state; executionEnd(null, ex); }
public void Run(string sCode, Action <object, Exception> executionEnd) { _consoleRedirect = new ConsoleRedirect(); VSTools.LogStartRunning(); try { var result = CSharpScript.RunAsync(sCode, defaultOptions, globals: new Globals()); result.ContinueWith(OnException, executionEnd, TaskContinuationOptions.OnlyOnFaulted); result.ContinueWith(OnSuccess, executionEnd, TaskContinuationOptions.OnlyOnRanToCompletion); } catch (Exception ex) { _consoleRedirect.Dispose(); VSTools.LogError(ex); VSTools.LogEndRunning(true); executionEnd(null, ex); } }