using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Tango.Scripting; namespace TestApp { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private IScriptingEngine _engine; private ScriptSession _session; public MainWindow() { InitializeComponent(); _engine = new ScriptingEngine(); } private async void Button_Click(object sender, RoutedEventArgs e) { Script s = new Script(); s.Code = @" using System; using System.Windows.Forms; MessageBox.Show(""Hi Roy""); "; try { _session = await _engine.Run(s); _session.StateChanged += Session_StateChanged; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void Session_StateChanged(object sender, ScriptSessionStateChangedEventArgs e) { if (e.State == ScriptSessionState.Completed) { MessageBox.Show(e.ReturnValue.ToString()); } else if (e.State == ScriptSessionState.Aborted) { MessageBox.Show("Aborted"); } else if (e.State == ScriptSessionState.Failed) { MessageBox.Show(e.Exception.ToString()); } } private void Button_Click_1(object sender, RoutedEventArgs e) { _session.Abort(); } } }