Mono.Debugger.Frontend.ScriptingContext.RuntimeInvoke C# (CSharp) Method

RuntimeInvoke() public method

public RuntimeInvoke ( Thread thread, TargetFunctionType function, TargetStructObject object_argument, TargetObject param_objects, RuntimeInvokeFlags flags ) : RuntimeInvokeResult
thread Thread
function Mono.Debugger.Languages.TargetFunctionType
object_argument Mono.Debugger.Languages.TargetStructObject
param_objects Mono.Debugger.Languages.TargetObject
flags RuntimeInvokeFlags
return Mono.Debugger.RuntimeInvokeResult
        public RuntimeInvokeResult RuntimeInvoke(Thread thread,
							  TargetFunctionType function,
							  TargetStructObject object_argument,
							  TargetObject[] param_objects,
							  RuntimeInvokeFlags flags)
        {
            IInterruptionHandler interruption = InterruptionHandler ?? Interpreter;
            if (interruption.CheckInterruption ())
                throw new EvaluationTimeoutException ();

            RuntimeInvokeResult result = thread.RuntimeInvoke (
                function, object_argument, param_objects, flags);

            WaitHandle[] handles = new WaitHandle [2];
            handles [0] = interruption.InterruptionEvent;
            handles [1] = result.CompletedEvent;

            int ret = WaitHandle.WaitAny (handles);

            if (ret == 0) {
                result.Abort ();
                throw new EvaluationTimeoutException ();
            }

            return result;
        }

Usage Example

コード例 #1
0
ファイル: Expression.cs プロジェクト: baulig/debugger
        protected TargetObject GetProperty(ScriptingContext context,
						    TargetPropertyInfo prop)
        {
            RuntimeInvokeFlags flags = context.GetRuntimeInvokeFlags ();

            RuntimeInvokeResult result = context.RuntimeInvoke (
                context.CurrentThread, prop.Getter, InstanceObject,
                new TargetObject [0], flags);

            if (result.ExceptionMessage != null)
                throw new ScriptingException (
                    "Invocation of `{0}' raised an exception: {1}",
                    Name, result.ExceptionMessage);

            return result.ReturnObject;
        }
All Usage Examples Of Mono.Debugger.Frontend.ScriptingContext::RuntimeInvoke