Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        private void OnSuccess(Task <ScriptState <object> > t, object state)
        {
            _consoleRedirect.Dispose();
            var result    = t.IsCompleted ? t.Result : null;
            var exception = t.IsFaulted ? t.Exception : null;

            VSTools.LogEndRunning(t.IsFaulted);
            var executionEnd = (Action <object, Exception>)state;

            executionEnd(result, exception);
        }
Ejemplo n.º 3
0
        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);
            }
        }