public EE.AsyncResult Evaluate(StackFrame frame, EE.EvaluationFlags flags, EE.EvaluationCallback callback) { AsyncResult async = new AsyncResult (this); ST.ThreadPool.QueueUserWorkItem (delegate { ScriptingContext context = new ScriptingContext (Parser.Interpreter); context.InterruptionHandler = async; context.CurrentFrame = frame; if ((flags & EE.EvaluationFlags.NestedBreakStates) != 0) context.ScriptingFlags |= ScriptingFlags.NestedBreakStates; object data; EE.EvaluationResult result = DoEvaluateWorker (context, out data); callback (result, data); async.WaitHandle.Set (); }); return async; }
public EE.AsyncResult Assign(StackFrame frame, TargetObject obj, EE.EvaluationCallback callback) { AsyncResult async = new AsyncResult (this); ST.ThreadPool.QueueUserWorkItem (delegate { ScriptingContext context = new ScriptingContext (Parser.Interpreter); context.InterruptionHandler = async; context.CurrentFrame = frame; object data; EE.EvaluationResult result = DoAssignWorker ( context, obj, out data); callback (result, data); async.WaitHandle.Set (); }); return async; }